Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ograniczenie daty
rafalekjan
post
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:
  1. if (($searchtext !='') and ($searchtext2 !='')){
  2. $where .="where main.time between '.%$searchtext%.' and '.%$searchtext2%.' and main.id_licznik=liczniki.id_licznik and '.$searchklient.'=liczniki.id_usera and '.$wyborprzelicz.'=liczniki.type";
  3.  
  4. }
  5. else{
  6. if ($searchtext !=''){
  7. $where .="where time >= '.%$searchtext%.' and main.id_licznik=liczniki.id_licznik and '.$searchklient.'=liczniki.id_usera and '.$wyborprzelicz.'=liczniki.type";
  8.  
  9. }
  10. else{
  11. if ($searchtext2 !=''){
  12. $where .="where time <= '.%$searchtext2%.' and main.id_licznik=liczniki.id_licznik and '.$searchklient.'=liczniki.id_usera and '.$wyborprzelicz.'=liczniki.type";
  13.  
  14. }
  15. else{
  16.  
  17. $where .='where time > 0 and main.id_licznik=liczniki.id_licznik and '.$searchklient.'=liczniki.id_usera and '.$wyborprzelicz.'=liczniki.type';
  18. }
  19. }} }
  20.  
  21.  
  22. $pomiarki=@mysql_query('SELECT main.time, main.msrt, liczniki.loc1, liczniki.loc2, liczniki.loc3 FROM main, liczniki '.$where.' GROUP BY main.time, main.msrt, liczniki.loc1, liczniki.loc2, liczniki.loc3');


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
  1. echo "$searchtext $searchtext2"
pokazuje prawidłowe daty (wcześniej wpisane).

Będę wdzięczny za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CuteOne
post
Post #2





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)(IMG:style_emoticons/default/smile.gif)
2. Lub:
  1. WHERE main.time >= '{$search1}' AND main.time <= '{$search2}'

3. Lub (nie wiem czy zadziała ;p):
  1. WHERE main.time BETWEEN '{$searchtext}' AND '{$searchtext2}'
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 10:22