Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]Problem z zapytaniem zawierającym BETWEEN
Forum PHP.pl > Forum > Przedszkole
eurosoft
Witam, mam poniższe zapytanie które generuje mi błąd. Kłopot się pojawił gdy dołożyłem warunek Between, proszę o wskazówki gdzie mam bagga...
  1. $sql1 = "SELECT
  2. $tabela.id_book,
  3. $tabela.imie_nazwisko,
  4. $tabela.start_pol,
  5. $tabela1.animals,
  6. $tabela1.animals1,
  7. $tabela1.animals2,
  8. $tabela1.ilosc,
  9. $tabela1.ilosc1,
  10. $tabela1.nr_obw,
  11. $tabela1.ilosc2
  12. FROM $tabela LEFT JOIN shot ON $tabela.id_book=$tabela1.id_book WHERE $tabela.nr_obw='{$_SESSION['nr_obw']}' and (BETWEEN $tabela.start_pol=$data_od AND $tabela.start_pol=$data_do) ";


zmienne $data_od oraz $data_do przekazywanie są z innego formularza poprzez POST
sadistic_son
1) Jak blad?
2) jesli pole $tabela.start_pol jest typu varchar, char czy text to musisz uzyc pojedynczego cudzysłowu:
  1. $sql1 = "SELECT
  2. $tabela.id_book,
  3. $tabela.imie_nazwisko,
  4. $tabela.start_pol,
  5. $tabela1.animals,
  6. $tabela1.animals1,
  7. $tabela1.animals2,
  8. $tabela1.ilosc,
  9. $tabela1.ilosc1,
  10. $tabela1.nr_obw,
  11. $tabela1.ilosc2
  12. FROM $tabela LEFT JOIN shot ON $tabela.id_book=$tabela1.id_book WHERE $tabela.nr_obw='{$_SESSION['nr_obw']}' and (BETWEEN $tabela.start_pol='$data_od' AND $tabela.start_pol='$data_do') ";
Jesli nie jest to pole typu DATE czy liczbowego to tez moga byc problemy z wybraniem czegos pomiedzy.
eurosoft
Błąd mam następujący:
Queryproblem: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BETWEEN book.start_pol='2011-01-30' AND book.start_pol='2011-01-30')' at line 12

pole jest typu DATE
sadistic_son
A wyjaśnij mi co jest pomiędzy 2011-01-30 a 2011-01-30 ?
eurosoft
Queryproblem: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BETWEEN book.start_pol=2011-01-09 AND book.start_pol=2011-01-30)' at line 12

przy zmianie daty (dane zawierające są napewno) nadal to samo....
melkorm
  1. (BETWEEN $tabela.start_pol='$data_od' AND $tabela.start_pol='$data_do') ";


Zacznij od manuala

Bo masz błąd z konstrukcją zapytania, w ogóle po cholerę tam jest between skoro i tak go nie używasz?
eurosoft
A będziesz uprzejmy podpowiedzieć gdzie jest ten błąd? Gdybym wiedział to zapewniam Cię że bym nie szukał tu pomocy......

OK nieważne poradziłem sobie....
thek
Dla tych, którzy nie zakumali gdzie byka zrobił autor tematu... Rozwiązanie już mu podano wcześniej. Miał złą składnię BETWEEN. Powinno być -> AND kolumna BETWEEN wartość1 AND wartość2
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-2025 Invision Power Services, Inc.