Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Undefined index?
Forum PHP.pl > Forum > Przedszkole
luis2luis
Witam.

Przechodzę na php 7.2 i analizuje sprawę różnych noticeów, które się pojawiają.

Generuje sobie dynamicznie tabelkę. Wcześniej tworze tablicę $jednostka_miary[] z pewnymi danymi i w zalezności od potrzeb podstawiam index.
Czasami zdaża się że indeks nie istnieje w tablicy.

Jak to profesjonalnie rozwiązać, żeby nie generowało notice?


  1.  
  2. print('<tr><td><b>'.$q.'.</b> '.$row['nazwa'].' - '.$jednostka_miary[$row['kod']].' </td></tr>');
  3.  


wyświetla mi to notice: Notice: Undefined offset: 0 in /alt/home/webmaster/admin/lista.php on line 182

Czy wczesniej musze zrobić
if (isset($jednostka_miary[$row['kod']])) { $jednostka = $jednostka_miary[$row['kod']; } else {$jednostka = '' }

i tą zmiennawstawiać do tabelki?
nospor
Jesli uzywasz php7 to mozesz dac poprostu zamiast
$jednostka_miary[$row['kod']]
dac
$jednostka_miary[$row['kod']] questionmark.gif ''

ps: ta emotka znaku zapytania to poprostu 2 znaki zapytania. Forum wpieprza sie emotka w nie
Pyton_000
Zawsze możesz wyłączyć parsowanie emotek w poście wink.gif
emillo91
Można to zrobić poprzez wywołanie metody klasy odpowiedzialnej za parsowanie takich danych czyli np class MySqlRowParser a w nim metodę getRowData ( i tutaj wrzucasz dane z bazy), która zwraca obiekt MySqlRowParser a później wywołać metodę getCollData, która będzie sprawdzać czy dane istnieją i zwracać null w przypadku braku indeksu. Możesz jeszcze wyłączyć z poziomu php zgłaszanie notice-ów ale nie będziesz wiedzieć jakie będą zgłaszane pozostałe błędy
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.