Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak skonstruować zapytanie?
Forum PHP.pl > Forum > Bazy danych > MySQL
Gerbil
Witam,

Mam takie zapytanie i nie działa.

Tablica $nazwajest jest tworzona wcześniej, i są w pętli wpisywane do niej wartości, konkretnie nazwy.

  1. <?php
  2. $wynik_prod = mysql_query("SELECT id_produktu,nazwa FROM produkty WHERE nazwa NOT IN (".implode(",", $nazwajest).")");
  3. $ile_prod = mysql_num_rows($wynik_prod);
  4. ?>


Wywala błąd:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in...

mysql_error() zwraca:
Something is wrong in your syntax obok 'cukier)' w linii 1
mike
Pole nazwa w tabeli to string więc wszystkie wartości podawane w klauzuli IN w zapytaniu powinny być w apostrofach.
Gerbil
Dzięki mike, pomogło guitar.gif

Dla zainteresowanych zapytanie powinno wyglądać tak:

  1. <?php
  2. $wynik_prod = mysql_query("SELECT id_produktu,nazwa FROM produkty WHERE nazwa NOT IN ('".implode(",", $nazwajest)."')");
  3. ?>


Czyli dodajemy apostrofy w IN ('cos tam') laugh.gif na przyszłość już będę wiedział.
tomeksobczak
Cytat(Gerbil @ 2.06.2008, 13:45:38 ) *
Dla zainteresowanych zapytanie powinno wyglądać tak:

  1. <?php
  2. $wynik_prod = mysql_query("SELECT id_produktu,nazwa FROM produkty WHERE nazwa NOT IN ('".implode(",", $nazwajest)."')");
  3. ?>


Czyli dodajemy apostrofy w IN ('cos tam') laugh.gif na przyszłość już będę wiedział.


To co napisałeś nie zadziała tak jak chcesz bo teraz Ci zbuduje zapytanie z tylko jedną wartościa w IN
  1. SELECT id_produktu,nazwa FROM produkty WHERE nazwa NOT IN ('cukier, mąka, mleko')

a wydaje mi się, że chodziło Ci o coś w stylu
  1. SELECT id_produktu,nazwa FROM produkty WHERE nazwa NOT IN ('cukier', 'mąka', 'mleko')


i to rozwiąże Twój problem

  1. <?php
  2. $wynik_prod = mysql_query("SELECT id_produktu,nazwa FROM produkty WHERE nazwa NOT IN ('".implode("', '", $nazwajest)."')");
  3. ?>
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.