Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] [mysql] pętla while, nadliczbowe wyniki
--Grzegorz--
post
Post #1





Goście







Witam,

mam pytanie - jak działa pętla WHILE w sytuacji, kiedy pobieram dane z kilku tablic MYSQL (SELECT .... FROM .... AS ....)?

Kiedy wykonałem pętle WHILE przy wyborze jednej tablicy, wszystko wyświetliło się prawidłowo:

  1. <?php
  2. $pytanie = "SELECT nazwa, kursy FROM osrodki";
  3. $wykonaj = mysql_query($pytanie);
  4. while ($wynik = mysql_fetch_assoc($wykonaj))
  5. {
  6.  echo $wynik['nazwa'].":<br>";
  7.  $kurs = explode(";", $wynik['kursy']);
  8.  foreach ($kurs as $k)
  9.  {echo $k."<br>";}
  10. }
  11. ?>


Ale kiedy próbowałem tego samego z dwiema tablicami, wynik wyświetlił mi się kilka(dziesiąt? set?) razy - w kółko.

  1. <?php
  2. $pytanieD = "SELECT o.nazwa, o.kursy, k.nazwa_kursu, k.id_kursu FROM osrodki as o, kursy
     as k"
    ;
  3. $wykonajD = mysql_query($pytanieD);
  4. while ($wynikD = mysql_fetch_assoc($wykonajD))
  5. {
  6.  echo $wynikD['nazwa'].":<br>";
  7.  $kurs = explode(";", $wynikD['kursy']);
  8.  foreach ($kurs as $k)
  9.  {echo $k."<br>";}
  10. }
  11. ?>


Gdzie popełniłem błąd?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Hazel
post
Post #2





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


  1. <?php
  2. if ($k == $wynik['id_kursu'])
  3. {
  4.  echo $k." - ".$wynik['nazwa_kursu']."<br>";
  5. }
  6. ?>


Jesteś pewien, że taki kod nie działa?
P.S. Wcinaj kod prawidłowo, a dobrze na tym wyjdziesz.

Ten post edytował Hazel 2.09.2007, 14:44:31
Go to the top of the page
+Quote Post
--Grzegorz--
post
Post #3





Goście







Cytat(Hazel @ 2.09.2007, 14:44:09 ) *
  1. <?php
  2. if ($k == $wynik['id_kursu'])
  3. {
  4.  echo $k." - ".$wynik['nazwa_kursu']."<br>";
  5. }
  6. ?>


Jesteś pewien, że taki kod nie działa?
P.S. Wcinaj kod prawidłowo, a dobrze na tym wyjdziesz.


Nie... nie działa. Dla każdego ośrodka ('nazwa') wyświetla tylko jeden (pierwszy) wynik 'nazwa_kursu'. A tych wyników powinna być cała lista (osobna lista dla każdego z ośrodków).
Go to the top of the page
+Quote Post

Posty w temacie
- -Grzegorz-   [php] [mysql] pętla while   1.09.2007, 22:13:22
- - wipo   Błąd masz w zapytaniu. Pętla działa prawidłowo. W ...   2.09.2007, 08:43:39
- - -Grzegorz-   Dziękuję bardzo - pomogło . Teraz pętla wykonuje s...   2.09.2007, 09:28:41
- - Hazel   [PHP] pobierz, plaintext <?phpif ($k == $wy...   2.09.2007, 14:44:09
|- - -Grzegorz-   Cytat(Hazel @ 2.09.2007, 14:44:09 ) [...   3.09.2007, 08:09:13
- - Hazel   Prześlij mi wywołanie funkcji var_dump($wykon...   3.09.2007, 10:12:00
|- - -Grzegorz-   Cytat(Hazel @ 3.09.2007, 10:12:00 ) P...   3.09.2007, 12:28:07
- - Hazel   Nie bardzo wiem, co masz na myśli, mówiąc "sk...   3.09.2007, 18:53:39
- - -Grzegorz-   Cytat(Hazel @ 3.09.2007, 18:53:39 ) N...   4.09.2007, 08:50:33


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: 2.10.2025 - 18:03