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: 190
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: 36 440
Pomógł: 6290
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]:


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

"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: 8 068
Pomógł: 1414
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: 129
Pomógł: 13
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: 29.03.2024 - 15:28