Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]"Wychodzenie" zmiennych poza while()
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Zastanawiam się nad pewną właściwością pętli while.
Mamy taki kodzik:
  1. while($row=mysql_fetch_array($result,MYSQL_NUM)){
  2. $zmienna=$row[0];
  3. }
  4. echo $zmienna;
Ten kod nie wyświetli nic.
Natomiast jeśli zrobimy tak:
  1. while($row=mysql_fetch_array($result,MYSQL_NUM)){
  2. $zmienna=$row[0];
  3. }
  4. $zmienna222=$zmienna;
  5. echo $zmienna222;
to wtedy wyświetli się ostatnia wartość $row[0].
Wiecie dlaczego tak jest? Czy to celowe działanie tej pętli czy przypadkowe? Ma to coś na celu?
mortus
Zrobiłem szybko mały teścik.
  1. <?php
  2. $connection = mysql_connect('localhost', '***', '***');
  3. $database = mysql_select_db('***');
  4. $sql = "SELECT * FROM liczby WHERE 1";
  5. $result = mysql_query($sql);
  6. while($row = mysql_fetch_array($result, MYSQL_NUM)) {
  7. $zmienna = $row[0];
  8. echo $zmienna . '<br />';
  9. }
  10. echo '- ' . $zmienna . '<br />';
  11. $zmienna222 = $zmienna;
  12. echo '- ' . $zmienna222 . '<br />';

W tabeli liczby mam dwa pola: id i liczba. Tabele wypełniłem 11 liczbami (1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0). I oto wynik:

Jak widać do zmiennej $zmienna zostaje przypisana ostatnia wartość $row[0]. Pewnie tak ma być smile.gif
EDIT:
Nie wiem dlaczego tobie nie zadziałało echo $zmienna; zaraz po pętli while, bo mnie działa.
sadistic_son
Kurde no dziwna sprawa. I Twój i mój przykład zaczęły działać po restarcie kompa, czyli pewnie po restarcie apacha.
Ale taki bug? No nie domyśliłby się człowiek.
Anyway... THX.
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.