Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak skonstruować zapytanie?, gdzie jest błąd?
Gerbil
post 2.06.2008, 12:25:35
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.01.2007
Skąd: Pszczew

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


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
Go to the top of the page
+Quote Post
mike
post 2.06.2008, 12:29:15
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Pole nazwa w tabeli to string więc wszystkie wartości podawane w klauzuli IN w zapytaniu powinny być w apostrofach.
Go to the top of the page
+Quote Post
Gerbil
post 2.06.2008, 12:45:38
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.01.2007
Skąd: Pszczew

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


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ł.
Go to the top of the page
+Quote Post
tomeksobczak
post 2.06.2008, 12:48:40
Post #4





Grupa: Zarejestrowani
Postów: 139
Pomógł: 10
Dołączył: 6.07.2007
Skąd: opole

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


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


Ten post edytował tomeksobczak 2.06.2008, 12:49:38


--------------------
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: 13.06.2025 - 11:09