Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Undefined index?
luis2luis
post 19.07.2019, 10:17:51
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 25.11.2015

Ostrzeżenie: (0%)
-----


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?

Ten post edytował luis2luis 19.07.2019, 10:20:43
Go to the top of the page
+Quote Post
nospor
post 19.07.2019, 10:20:40
Post #2





Grupa: Moderatorzy
Postów: 34 688
Pomógł: 5770
Dołączył: 27.12.2004




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
Powód edycji: [nospor]:


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post 22.07.2019, 06:58:42
Post #3





Grupa: Zarejestrowani
Postów: 7 799
Pomógł: 1373
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Zawsze możesz wyłączyć parsowanie emotek w poście wink.gif
Go to the top of the page
+Quote Post
emillo91
post 27.07.2019, 23:13:21
Post #4





Grupa: Zarejestrowani
Postów: 114
Pomógł: 12
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.08.2019 - 06:54