Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie sql
Forum PHP.pl > Forum > Bazy danych > MySQL
piraciq
Witam serdecznie

mam taki zamysł :-)

wybrać rekordy gdzie level = 1 i
file_always = 1 lub file_count_to > 0 lub file_date_to > NOW()

zrobiłem takie zapytanie ale coś nie działa :/

  1. SELECT * FROM banners WHERE file_level=1 AND (file_always = 1 OR file_count_to > 0 OR file_date_to > NOW())ORDER BY RAND();


ale jakoś lipa :/
nospor
"coś nie dziala" czyli co? Dostajesz rekordy ale nie te co chcesz? Nie dostajesz nic? Blad zapytania?
piraciq
Sorki za niesprecyzowanie nic nie wyświetla, żadnych rekordów
nospor
a w czym pobierasz te dane? w php poprzez mysql_query ? To sprawdz czy nie masz bledu zapytania:
echo mysql_error();

a jak w PMA i nadal ci nic nie wyswietla to moze nie masz danych, ktore spelniają ten warunek smile.gif
piraciq
W bazie mam taki wpis
file_date_to file_count_to file_always file_level
1258026583 0 0 1

  1. SELECT *
  2. FROM banners WHERE file_level =1 AND (
  3. file_always =1 OR file_count_to >0 OR file_date_to > NOW( )
  4. )
  5. ORDER BY rand( )


dając takie zapytanie mam 0 rekordów

pierwszym i głównym kryterium jest "file_level" a następnie któryś z następnych nawet podana data to "November 12, 2009, 12:49 pm"
nospor
przeciez zaden z warunkow OR nie jest spelniony. jesli myslales ze file_date_to > NOW( ) to sie mylisz, bo NOW( ) zwraca format tekstowy, a ty porownujesz go z unixowym czasem. Musisz najpierw skonwertowac jedno albo drugie
piraciq
Właśnie zauważyłem:-) Przepraszam za zamieszanie już działa :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.