Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd w zapytaniu do bazy przez php, w phpMyadmin działa
Forum PHP.pl > Forum > Bazy danych > MySQL
kriszna
Witam,
Pisząc pewien skrypt napotkałem na mały problem. Chcę wyciągnąć pewnie informacje z bazy, poprzez zapytanie
  1. SELECT catalog.id,catalog.tracks, catalog.title, catalog.catalog_number, catalog.country, catalog.type, catalog.other WHERE catalog.id IN ('16','18') ORDER BY catalog.ORDER DESC LIMIT 0,10

jednak dostaje komunikat:
Cytat
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 'WHERE catalog.id IN ('16','' at line 2

Po usunięciu ' ' z IN()
Cytat
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 'WHERE catalog.id IN (16,' at line 2

Nie mam pomysłu co mogę robić źle.
Z góry dzięki za pomoc
Kriszna
nospor
ciezko zajrzej do manuala mysql i doczytac jak wygląda prawidlowa skladnia dla SELECT?

Zapomniales o FROM
kriszna
Błąd w przepisywaniu :/
Przy
  1. SELECT catalog.id,catalog.tracks, catalog.title, catalog.catalog_number, catalog.country, catalog.type, catalog.other FROM catalog WHERE catalog.id IN (16,18) ORDER BY catalog.ORDER DESC LIMIT 0,10

Po poprawieniu
Cytat
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 2
Mchl
Nie za dużo tych ORDERów?
melkorm
A pokaż jak masz to umieszczone w kodzie PHP ?

Podejrzewam że w skrypcie nie masz
Kod
catalog.ORDER

// tylko

order


Co jest słowem zarezerwowanym, ale to tylko pierwsza myśl, więc pokaż kod PHP.
kriszna
Masz rację order to nazwa pola, którą już zmieniłem. Problem pozostaje
  1. $mycol = $release->sql->query("SELECT collection FROM ".P_SQL."users WHERE id = '$_SESSION[uid]'");
  2. $mycoll = $mycol->fetch_object();
  3. $col = $mycoll->collection; //to string w postaci liczba,liczba, ....
  4. $col[strlen($col)-1]="";
  5. $where = " WHERE ".P_SQL."catalog.id IN ($col) ";
  6. $query = "SELECT ".P_SQL."catalog.id, ".P_SQL."catalog.tracks, ".P_SQL."catalog.title, ".P_SQL."catalog.catalog_number,
  7. ".P_SQL."catalog.country, ".P_SQL."catalog.type, ".P_SQL."catalog.other FROM ".P_SQL."catalog
  8. $where
  9. ORDER BY ".P_SQL."catalog.pos DESC
  10. LIMIT ".($page*$limit).",".($page+1)*$limit;
  11. $result = $this->sql->query($query);

P_SQL to prefix nazw tabeli bazie.
Mchl
Komunikat błędu nadal taki sam?
kriszna
Tak
melkorm
a zrób var_dump'a na query przed zapytaniem i pokaż nam wynik.
kriszna
  1. string(210) "SELECT catalog.id, catalog.tracks, catalog.title, catalog.catalog_number, catalog.country, catalog.type, catalog.other FROM catalog WHERE catalog.id IN (16,18) ORDER BY catalog.pos DESC LIMIT 0,10"
Mchl
$this->sql to objekt typu MySQLi?
kriszna
Tak
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.