Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: blad w skladni
Forum PHP.pl > Forum > Przedszkole
hmmm
mam utworzona tablice $przedmioty, ktora na 100% istnieje i ma wartosci.

chce utworzyc zapytanie do bazy danych opierajac sie o te tablice, ale ... nie wiem jak, bo to co mam, nic mi nie zwraca.

mam:
  1. <?php
  2. //kod przed
  3.  
  4. $polecenie5 = mysql_query(&#092;"SELECT plik, nazwa, wielkosc FROM download WHERE kategoria2=$przedmioty[]\");
  5.  
  6. while ($wynik5 = mysql_fetch_array($polecenie5, MYSQL_NUM)) {
  7. echo $wynik5[0] . ', ' . $wynik5[1] . ', ' . $wynik5[2] . '<br />';
  8. }
  9.  
  10. //kod po
  11. ?>

jak to poprawic?
Kinool
Cytat
WHERE kategoria2=$przedmioty[]


sory ale co ty przekazujesz?? jaka element tablicy??
hmmm
no np. $przedmioty[0] ma wartosc 'matematyka', a $przedmioty[1] - 'niemiecki'.
i teraz chcialbym stworzyc zapytanie, ktore bedzie mi podstawialo te wartosci do kategoria2
crash
Może chodzi Ci o wyliczenie IN?
  1. <?php
  2. mysql_query(&#092;"SELECT plik, nazwa, wielkosc FROM download WHERE kategoria2 IN '\".implode(', ', $przedmioty).\"'\");
  3. ?>
hmmm
nic mi nie zwraca ...
kurde, cos mi sie wydaje, ze zle to kombinuje w ogole :/
Kinool
IN dzila tylko na wartosci liczbowe a nie textowe, no chyba ze cos sie zmienilo w tej materii a jesli juz hestesmy przy IN to wartosci musza byc podane w nawiasach smile.gif

kolega stosuje tu wartosci textowe wiec w gre wchodzi petal z wartosci z tablicy budujaca zapytanie w stylu ... kategoria=$element_tablicy OR ... itp. ale jest to malo wydajne dla bazy danych wiec radzilbym przebudowac system i uzywac wartosci liczbiowych do reprezentowania kategorii
polibode
hmm ->proponowałbym nie używać w zapytaniu SQLowym tablicy wielu zmiennych
Zapytanie musi być tak skonstruowane aby w klauzukli WHERE osnosić się do konkretnej wartości , jeśli zawężamy element poszukiwań.
Jeśli owszem chciałbyś coś zrobić dla wielu zmiennych , to umieść zapytanie w pętli for i przerzucać wylistowane elementy do tablicy.
the_ring
Tak dla mnie to:
  1. <?php
  2. $polecenie5 = mysql_query(&#092;"SELECT plik, nazwa, wielkosc FROM download WHERE kategoria2='\".$przedmioty[$konkretnyIndex].\"'\");
  3. ?>

Zwróć uwagę jak umieściłem apostrofy oraz cudzysłowia oraz kropki.

Pozdrawiam.
hmmm
sklepalem cos takiego:
  1. <?php
  2. // kod przed
  3.  
  4. // pobierz wszystkie grupy plikow
  5. $polecenie2 = mysql_query(&#092;"SELECT kategoria2 FROM download GROUP BY kategoria2\");
  6. while ($wynik2 = mysql_fetch_array($polecenie2, MYSQL_NUM)) {
  7. $wszystkie_grupy[] = $wynik2[0];
  8. }
  9. mysql_free_result($polecenie2);
  10.  
  11. // wyswietl wszystkie grupy plikow
  12. foreach ($wszystkie_grupy as $dana_grupa) {
  13.  
  14. echo $dana_grupa . '<br />' . &#092;"n\";
  15.  
  16. // pobierz wszystkie pliki dla danej grupy plikow
  17. // wyswietl wszystkie pliki dla danej grupy plikow
  18. $polecenie3 = mysql_query(&#092;"SELECT plik, nazwa, wielkosc FROM download WHERE kategoria2='\" . $dana_grupa . \"'\");
  19. while ($wynik3 = mysql_fetch_array($polecenie3, MYSQL_NUM)) {
  20. echo $wynik3[0] . ', ' . $wynik3[1] . ', ' . $wynik3[2] . '<br />' . &#092;"n\";
  21. }
  22. mysql_free_result($polecenie3);
  23. }
  24.  
  25. // kod po
  26. ?>


dzieki, zupelnie zapomnialem o tych apostrofach tongue.gif
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.