Ograniczenie daty |
Ograniczenie daty |
9.12.2010, 00:43:01
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) |
Witam.
Próbuję odfiltrować niepotrzebne dane z bazy danych. Filtracja odbywa się przez wybranie daty, numer użytkownika jest pobierany automatycznie po zalogowaniu. Kod wygląda tak:
Kiedy nie wpiszemy żadnego ograniczenia wyrzuca dane jakie powinien, ale gdy wpiszę datę od ($searchtext) lub do ($searchtext2) lub obie nie zwraca żadnych wyników. Daty w bazie są w formacie rrrr-mm-dd gg:mm:ss, ale dodałem %, więc nie powinno być z tym problemu. Po wpisaniu pokazuje prawidłowe daty (wcześniej wpisane). Będę wdzięczny za pomoc. |
|
|
9.12.2010, 08:20:03
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
Wystarczy, że sobie odpowiesz na pytanie, co Ci generuje następujący kod w treści zapytania i będziesz wiedział, czemu nie działa:
Kod '.%$searchtext%.' -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
9.12.2010, 11:11:39
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) |
Generuje datę w postaci rrrr-mm-dd, a % jest bo w bazie data jest razem z godziną.
Ten post edytował rafalekjan 9.12.2010, 11:21:26 |
|
|
9.12.2010, 12:24:39
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) |
1. Zamiast kombinować ustaw kolumnę time na TIMESTAMP'a (no i poczytaj na google jak tego używać w praktyce)
2. Lub:
3. Lub (nie wiem czy zadziała ;p):
|
|
|
9.12.2010, 14:30:35
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) |
Nic to nie zmieniło.
Kiedy wpisuję jakiekolwiek ograniczenie datowe nie wyrzuca wyników: Dla upewnienia dane w tabeli mają strukturę: I nawet po zmianie na timestamp nie zmieniło się wyszukiwanie. Dane w tabeli: |
|
|
9.12.2010, 14:58:01
Post
#6
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
Zabrzmię może trochę totalitarnie, ale jak osoba ze 128 "Pomógł" pisze Ci, żebyś się przyjrzał temu, co wpisujesz, to Ty się przyglądasz i usuwasz wątpliwe elementy. I usuwasz ZARÓWNO znaki procenta, jak i znajdujące się obok nich KROPKI. Twoje uzasadnienie nie pokrywa się bowiem z rzeczywistością i tym, jak MySQL działa dla dat.
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
9.12.2010, 15:32:42
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) |
Ale przecież tak zrobiłem:
|
|
|
9.12.2010, 15:42:48
Post
#8
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
OK, widzę że nieco opornie to idzie. We wszystkich przypadkach doklejasz nadmiarowe kropki wraz ze zmiennymi do wartości, którą baza ma Ci sprawdzić. A to dlatego, że masz burdel w kodzie: raz używasz apostrof, innym razem cudzysłowów i się gubisz w tym, próbując wstawiać zmienne '.$foo.' do ciągów ograniczonych przez cudzysłowy i pewnie vice versa. A jeśli tak zrobisz, kropki stają się integralną częścią zapytania i są wysyłane do bazy. Zatem próbujesz dane liczbowe przyrównywać nie do np. 5, a do .5.
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
9.12.2010, 18:10:21
Post
#9
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) |
Ok, działa po usunięciu wszystkich kropek.
Więc kiedy mogę je stosować a kiedy nie? Teraz wszędzie zrobiłem pojedyncze cudzysłowy i działa bez kropek. |
|
|
9.12.2010, 19:21:27
Post
#10
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
Kropka to operator łączenia ciągów tekstowych i stosujesz je wtedy, kiedy chcesz połączyć dwa ciągi tekstowe, a to możesz zrobić jedynie będąc aktualnie poza ciągiem tekstowym. Apostrof nie zamyka ciągu otwartego cudzysłowem i vice versa.
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 01:49 |