Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] You have an error in your SQL syntax
Forum PHP.pl > Forum > Przedszkole
adi456
Witam, proszę pomocy męcze problem już 2 dni i nie wiem o co chodzi

otrzymuje błąd
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 ')' at line 1

w zapytaniu
  1. mysqli_query($sql ,"SELECT kod, id FROM zamowienia_towar WHERE id!='0' AND zamowienia_towar.dostawca LIKE 'ccs' ORDER BY nazwa ASC LIMIT 350,50 ") or die(mysqli_error($sql));


nierozumiem dlaczego pisze że błąd jest w lini 1 ale w jakim pliku? wszędzie w zapytaniach mam or die(mysqli_error($sql)) a żadnego konkretnego błedu nie widze
nie jestem pewien że błąd wywala powyższe zapytanie ale doszedłem do tego wklejając echo w różne miejsca i przed tym zapytaniem sie wyświetla po nim już nie, pozatym błąd wywala się tylko przy 8 stronie z 9 każda inna działa normalnie.
b4rt3kk
Jeśli na stronie 8 z 9 to chyba nie to zapytanie wkleiłeś? Bo ja tu żadnych zmiennych nie widzę, w zależności od strony...

Kolejna sprawa - błąd zwraca SQL, a nie PHP. A dla SQL 1 wiersz to właśnie wiersz z Twoim zapytaniem...

Zrób tak:

  1. $query = "SELECT kod, id FROM zamowienia_towar WHERE id!='0' AND zamowienia_towar.dostawca LIKE 'ccs' ORDER BY nazwa ASC LIMIT 350,50"; // tylko daj poprawne zapytanie
  2. echo $query;


I wklej tutaj wynik powyższego kodu (jeśli nie zauważysz błędu od razu) lub odpal bezpośrednio na bazce, rozbijając poszczególne człony zapytania na kolejne linie. Wtedy dostaniesz bardziej szczegółowo, która to linia.
adi456
zgadza się prawidłowe pytanie z zmiennymi to

  1. $query=mysqli_query($sql ,"SELECT kod, id FROM zamowienia_towar WHERE id!='0' $sql_dst $sql_sz ORDER BY nazwa ASC LIMIT $row_od,$stonnicowanie_co ") or die(mysqli_error($sql));


ale to testów wywaliłem zmienne i wstawiłem stringi żeby być bliżej problemu

po wklejeniu
  1. $query = "SELECT kod, id FROM zamowienia_towar WHERE id!='0' AND zamowienia_towar.dostawca LIKE 'ccs' ORDER BY nazwa ASC LIMIT 350,50"; // tylko daj poprawne zapytanie
  2. echo $query;
  3. die;


otrzymuje
  1. SELECT kod, id FROM zamowienia_towar WHERE id!='0' AND zamowienia_towar.dostawca LIKE 'ccs' ORDER BY nazwa ASC LIMIT 350,50


mam jakiś postęp:

moje spostrzeżenia:
LIMIT 338,50 - od rekordu 339 do 370 wywala ten błąd, następnie zapytanie wkleiłem bezpośrednio do PhpMyAdmin poniżej wynik, wnioskuje że błąd się pojawia ponieważ kod to 0

kod id
1366 27210
0 27574
0 27570
0 27572
itp

tylko nie rozumiem w czym tu przeszkadzają te 0

dodam jeszcze że po wklejeniu tego "SELECT kod, id FROM zamowienia_towar WHERE id!='0' zamowienia_towar.dostawca LIKE 'ccs' ORDER BY nazwa ASC LIMIT 350,50" beśpośrednio do SQL w PhpMyAdmin też wyświetla ten sam błąd

po wklejeniu tego "SELECT kod, id FROM zamowienia_towar WHERE id!='0' zamowienia_towar.dostawca LIKE 'ccs' ORDER BY nazwa ASC LIMIT 338,50" normalnie otrzymuje wynik
nospor
Komunikat bledu mowi, ze masz blad obok nawiasu.
Mowisz, ze blad pojawia się, gdy zmienisz warunki limitu.

Kurcze, trudno uwierzyć w oba punkty, gdyz:
w zapytaniu nigdzie nie masz nawiasu
warunki limitu nie mają wplywu na blad skladni zapytania
Pyton_000
dlatego że masz wszędzie taki die wstawiony to się nie dziw że nie wiesz gdzie.
wstaw coś takiego np:
  1. or die(__FILE__ .': '. __LINE__.' - ' . mysqli_error($sql));

do wszystkich zapytań.
trueblue
W obydwu zapytaniach, które określasz jako wklejane, nie ma warunku binarnego:
  1. id!='0' zamowienia_towar.dostawca LIKE 'ccs'

Sprawdź dobrze co wykonujesz realnie, a co testujesz.
adi456
Cytat(Pyton_000 @ 17.10.2014, 21:06:26 ) *
dlatego że masz wszędzie taki die wstawiony to się nie dziw że nie wiesz gdzie.
wstaw coś takiego np:
  1. or die(__FILE__ .': '. __LINE__.' - ' . mysqli_error($sql));

do wszystkich zapytań.


jesteś wielki!, znalazłem trefne zapytanie, 5 min i po problemie. A na przyszłość mam nauczke że szukanie problemu echem to idiotyczny pomysł.
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.