Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pobieranie kilku danych z bazy
Forum PHP.pl > Forum > Przedszkole
maxis88
Witam. Chciałem pobrać kilka danych z jednej tablicy, jednak z poniższego kodu pobiera mi jedynie pierwszy warunek ( na phpMyAdmin kod działa poprawnie )

  1. $ceny_kopaln=mysql_query("
  2. (
  3. SELECT cena
  4. FROM `ceny`
  5. WHERE nazwa = 'kopalnia wegla'
  6. )
  7. UNION (
  8.  
  9. SELECT cena
  10. FROM `ceny`
  11. WHERE nazwa = 'kopalnia srebra'
  12. )");
  13.  
  14. $ceny=mysql_fetch_assoc($ceny_kopaln);
  15. foreach($ceny AS $id=>$wart){
  16. echo "$id: $wart<br />";
  17. }

i pojawia sie jedynie cena kopalni wegla w tym przypadku...
co robię nie tak ? probowałem też łączyć zapytania przez "OR" ale daje to takie same wyniki...
każde z zapytań napisane osobno dziala poprawnie więc wartości pola nie zawierają błędów...
Hpsi
A zapytanie takie:
  1. $cena_koaln = mysql_query('SELECT `cena` FROM `ceny` WHERE `nazwa`="kopalnia wegla" OR `nazwa`="kopalnia srebra"');

drPayton
zamiast foreach zrób:
  1. while ($row = mysql_fetch_assoc($ceny_kopaln)) {
  2. print_r($row);
  3. }


voila! wink.gif
maxis88
Cytat(drPayton @ 13.06.2011, 10:37:19 ) *
zamiast foreach zrób:
  1. while ($row = mysql_fetch_assoc($ceny_kopaln)) {
  2. print_r($row);
  3. }


voila! wink.gif


ok działa , ale czemu nie mogę użyc foreach ?
drPayton
Przeczytaj manuala do funkcji mysql_fetch_assoc, szczególnie pierwszy akapit: "Description" wink.gif
maxis88
yhy czyli to tylko kwestia pobierania wynikow z bazy ? w sumie nie zależało mi konkretnie na tablicy asocjacyjnej więc gdybym chciał uparcie uzyc tego foreach musialbym uzywac mysql_fetch_array ?
drPayton
Nie, najprościej rzecz ujmując:
foreach działa na gotowym, istniejącym zbiorze danych (tablicy)
pobieranie danych z bazy (bez znaczenia czy *_assoc czy *_array) polega na pobraniu rekordu, przesunięciu wskaźnika, pobraniu kolejnego rekordu etc... Nie możesz użyć tu więc foreach'a
maxis88
yhy dzięki wielkie za wyjaśnienie smile.gif
drPayton
Dodam, żebyś nie przegapił edycji wink.gif

Najpierw pobierz dane z wykorzystaniem mysql_fetch_assoc (np), wstaw je sobie do tablicy.
Po tej tablicy robisz co chcesz jadąc foreach'em. Tak to się odbywa, niestety wink.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.