• 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.

Object Storage Arubacloud
+1 głos
203 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 Szeryf (86,360 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 Szeryf (86,360 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ź 478 wizyt
pytanie zadane 22 stycznia 2019 w C# przez Borekdb Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 124 wizyt
pytanie zadane 10 lipca 2018 w PHP przez revizor451 Obywatel (1,930 p.)
+1 głos
2 odpowiedzi 496 wizyt
pytanie zadane 8 października 2021 w Offtop przez livingr4t Nowicjusz (200 p.)

92,555 zapytań

141,402 odpowiedzi

319,538 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...