Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] You have an error in your SQL syntax
adi456
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
adi456
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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

Ten post edytował adi456 17.10.2014, 16:00:54
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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ń.
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
adi456
post
Post #7





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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ł.

Ten post edytował adi456 17.10.2014, 23:27:36
Go to the top of the page
+Quote Post

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: 23.08.2025 - 18:28