Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Pobieranie kilku danych z bazy, Union
maxis88
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

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


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...
Go to the top of the page
+Quote Post
Hpsi
post
Post #2





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


A zapytanie takie:
  1. $cena_koaln = mysql_query('SELECT `cena` FROM `ceny` WHERE `nazwa`="kopalnia wegla" OR `nazwa`="kopalnia srebra"');

Go to the top of the page
+Quote Post
drPayton
post
Post #3





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


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


voila! (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
maxis88
post
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

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


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! (IMG:style_emoticons/default/wink.gif)


ok działa , ale czemu nie mogę użyc foreach ?
Go to the top of the page
+Quote Post
drPayton
post
Post #5





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Przeczytaj manuala do funkcji mysql_fetch_assoc, szczególnie pierwszy akapit: "Description" (IMG:style_emoticons/default/wink.gif)

Ten post edytował drPayton 13.06.2011, 09:46:28
Go to the top of the page
+Quote Post
maxis88
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

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


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 ?
Go to the top of the page
+Quote Post
drPayton
post
Post #7





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


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
Go to the top of the page
+Quote Post
maxis88
post
Post #8





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

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


yhy dzięki wielkie za wyjaśnienie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
drPayton
post
Post #9





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Dodam, żebyś nie przegapił edycji (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:56