Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][MySQL] Warnig przy pętli while gdy brak pozycji w bazie?
Forum PHP.pl > Forum > Przedszkole
starterrrrr
Witam.

Ostatnio przeglądam warnini jakie skrypypty mi wyrzucają i natrafiłęm na takie coś, że czesto jak listuje np liste kategorii artykułów. I akurat chwilowo brakuje artykułow to php zwraca mi warninig w linijce gdzie jest pętla while()

  1. <?
  2. $result = sql("SELECT * FROM ".$dbprefix."kat");
  3. while ($row = mysqli_fetch_assoc($result)) {
  4.  
  5. //kod do wykonania
  6.  
  7. } ?>



Więc czy powinienem kod wywołania pętli zawsze zapisywać tak, czy tylko wtedy kiedy spodziewam się że może być pusta baza?

  1. <?
  2. $result = sql("SELECT * FROM ".$dbprefix."kat");
  3. if (!empty($result->{'num_rows'})) {
  4. while ($row = mysqli_fetch_assoc($result)) {
  5.  
  6. //kod do wykonania
  7. }
  8. } ?>
nospor
Naprawde tak ciezko podac dokladnie komunikat tego bledu?
starterrrrr
Cytat(nospor @ 20.03.2020, 09:57:02 ) *
Naprawde tak ciezko podac dokladnie komunikat tego bledu?


Chciałem wstawić, ale wczoraj poksowałem wszystkie warningi. Poszukam jeszcze.
nospor
Poki co pozostaje mi wrozyc:

Nie, brak rekordow nie ma wplywu na warning tutaj. Jedyne co moze powodowac blad tutaj to blad wykonania zapytania a co za tym idzie zmienna $result bedzie NULL lub FALSE - nie wiem co zwraca twoja funkcja sql().
Wiec kod jaki powinien byc to bardzie cos takiego:

  1. $result = sql("SELECT * FROM ".$dbprefix."kat");
  2. if ($result) {
  3. while ($row = mysqli_fetch_assoc($result)) {
  4.  
  5. //kod do wykonania
  6. }
  7. }


A juz w ogole najlepiej by bylo jakby funkcja sql() rzucala wyjatkiem jak sie cos nie powiedzie.
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.