Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] O jeden Notice za daleko...
Kshyhoo
post 25.02.2018, 19:05:14
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Zazwyczaj nie mam problemu z pozbyciem się komunikatu Notice, ale teraz poległem. Oto kod, którym pobieram dane z bazy, wrzucam do select/option i zaznaczam wybrany:
  1. $query = "SELECT * FROM keeper ORDER BY id_keeper ASC";
  2. if ($result = mysqli_query($link, $query)) {
  3. while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
  4. $id = $row["id_keeper"];
  5. if ($itemKeep == $id)
  6. $choose = 'selected="selected"';
  7. else
  8. $choose = '';
  9. $keeper .= "<option value='$id' $choose>{$row["k_name"]}</option>\r\n";
  10. }
  11. }

No i nie umiem się pozbyć: Notice: Undefined variable: keeper in


--------------------
Go to the top of the page
+Quote Post
trueblue
post 25.02.2018, 19:09:43
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


A jaką wartość domyślną ma zmienna $keeper?


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 25.02.2018, 19:12:22
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Zapewne jest tablicą, bo to są <option> w <select>.


--------------------
Go to the top of the page
+Quote Post
b4rt3kk
post 25.02.2018, 19:20:22
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


A nie możesz poprostu zadeklarować tejżej zmiennej przed użyciem operatora .= ? Bo on przecież powoduje dołączenie stringa do już istniejącego, więc i zmienna musi istnieć.

  1. $query = "SELECT * FROM keeper ORDER BY id_keeper ASC";
  2. $keeper = null;
  3.  
  4. if ($result = mysqli_query($link, $query)) {
  5. while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
  6. $id = $row["id_keeper"];
  7. if ($itemKeep == $id)
  8. $choose = 'selected="selected"';
  9. else
  10. $choose = '';
  11. $keeper .= "<option value='$id' $choose>{$row["k_name"]}</option>\r\n";
  12. }
  13. }


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
trueblue
post 25.02.2018, 19:23:14
Post #5





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Zrób var_dump($keeper) na początku kodu i na końcu. Zobaczysz jakie ma wartości, dowiesz się również, że w żadnym momencie nie jest tablicą.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 25.02.2018, 19:26:25
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Próbowałem... i nie działało - nie wyświetlało innych poza wybraną. Teraz zadziałało, może deklarowałem w złym miejscu, albo za dużo balowałem ostatniej nocy wink.gif

Cytat(trueblue @ 25.02.2018, 19:23:14 ) *
Zrób var_dump($keeper) na początku kodu i na końcu. Zobaczysz jakie ma wartości, dowiesz się również, że w żadnym momencie nie jest tablicą.

Masz rację, zapewne jest ciągiem, skoro występuje operator .=.
tak czy inaczej, dziękuję za pomoc. Teraz pozostaje tylko zabezpieczyć wybór przed dowcipasami wink.gif


--------------------
Go to the top of the page
+Quote Post
trueblue
post 25.02.2018, 19:27:30
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


I zapewne nie miała wartości domyślnej.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 25.02.2018, 19:29:15
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




No nie miała smile.gif


--------------------
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: 18.04.2024 - 22:04