Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] You have an error in your SQL syntax
adi456
post 17.10.2014, 14:39:40
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 17.10.2014, 15:12:37
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.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
adi456
post 17.10.2014, 15:35:10
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 17.10.2014, 18:26:37
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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post 17.10.2014, 20:06:26
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 17.10.2014, 21:13:48
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 17.10.2014, 23:16:26
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:40