• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP - Nie rozumiem podstawowej pętli.

+1 głos
86 wizyt
pytanie zadane 25 grudnia 2020 w PHP przez skoku Nowicjusz (210 p.)

Witam! :)

Uczę się do egzaminu E.14 i borykam się z jednym jedynym problemem polegającym na logicznym zrozumieniu kodu. Nie rozumiem działania o to tej pętli w PHP. Skąd ona wie ile razy ma się wykonać? Nie rozumiem warunku $wynik=mysqli_fetch_assoc($zapytanie). Jaką wartość przyjmuje $wynik? Wiem, że jest to tablica ale ona przecież jest ciągle równa tamtej tablicy asocjacyjnej więc - na moje oko - powinno się to kręcić w nieskończoność a jednak tak nie jest. 

 

  $connect=mysqli_connect($host,$username,$pass,$database);
    $zapytanie = mysqli_query($connect,"SELECT `id`, `nazwa`, `opis`, `cena` FROM `podzespoly` WHERE `cena` < 1000");
    
    while($wynik=mysqli_fetch_assoc($zapytanie))
    {
        echo $wynik["id"];
        echo $wynik["nazwa"];
        echo $wynik["opis"];
        echo $wynik["cena"];
    }
    
    mysqli_close($connect);

Dziękuję za poświęcony czas.

1 odpowiedź

+1 głos
odpowiedź 25 grudnia 2020 przez SzkolnyAdmin Maniak (62,700 p.)
wybrane 25 grudnia 2020 przez skoku
 
Najlepsza
Pętla while działa (potarza kod w bloku poniżej) dopóki warunek jest prawdziwy. Funkcja mysqli_fetch_array zwraca tablicę z poszczególnymi wierszami wyniku kwerendy (w ciebie jest to tablicy $wynik - ta zmienna staje się tablicą). Gdy wiersze wyniku kwerendy się skończą, funkcja mysqli_fetch_array zwróci false i zmienna $wynik stanie się równa false. Warunek while będzie fałszywy i skrypt przejdzie do instrukcji znajdujących się ponizej bloku.
komentarz 25 grudnia 2020 przez skoku Nowicjusz (210 p.)

Ten szczegół, że wynik na samym końcu przyjmuje false wszystko wyjaśnia. Dziękuje bardzo! 

komentarz 25 grudnia 2020 przez SzkolnyAdmin Maniak (62,700 p.)

Ściślej funkcja zwraca NULL w przypadku braku wierszy wyniku, ale w tym przypadku zostanie to potraktowane jako fałsz.

https://www.php.net/manual/en/types.comparisons.php

Podobne pytania

+1 głos
1 odpowiedź 203 wizyt
pytanie zadane 22 stycznia 2019 w C# przez Borekdb Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 77 wizyt
pytanie zadane 10 lipca 2018 w PHP przez revizor451 Obywatel (1,930 p.)
+1 głos
2 odpowiedzi 92 wizyt
pytanie zadane 8 października w Offtop przez livingr4t Nowicjusz (200 p.)

85,873 zapytań

134,644 odpowiedzi

298,914 komentarzy

56,739 pasjonatów

Advent of Code 2021

Top 15 użytkowników

  1. 926p. - rucin93
  2. 925p. - Whistleroosh
  3. 912p. - nidomika
  4. 876p. - adrian17
  5. 867p. - Michal Drewniak
  6. 866p. - Mikbac
  7. 863p. - Mateusz Bogdan
  8. 859p. - CC PL
  9. 797p. - Argeento
  10. 704p. - ScriptyChris
  11. 683p. - tokox
  12. 660p. - Vinox
  13. 645p. - TheLukaszNs
  14. 642p. - s. Dorota Kowalewska
  15. 601p. - Marcin Harasimowicz
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...