Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Odczyt wartości z bazy do pola option
kubax33
post 1.06.2014, 16:47:48
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


Mam rekord w bazie rodzaj_gry, który przy dodawaniu ma wartość 1, 2, 3 lub 4

Zapisuję dane z selecta:

  1. <option value"1">1</option>
  2. <option value"2">2</option>
  3. <option value"3" selected="selected">3</option>
  4. <option value"4">4</option>
  5. <option value"5">5</option>


ale chciałbym teraz je odczytać z bazy do edycji.

Nie chciałbym tworzyć za każdym razem:
  1. echo "<select>";
  2.  
  3. if ($rodzaj_gry == '5')
  4. {
  5. echo '
  6. <option value"1">1</option>
  7. <option value"2">2</option>
  8. <option value"3">3</option>
  9. <option value"4">4</option>
  10. <option value"5" selected="selected">5</option>
  11. ';
  12.  
  13. }
  14.  
  15. echo "</select>";


pewnie prościej można zrobić to tak:

  1. echo "<select>";
  2.  
  3. if ($rodzaj_gry == '1')
  4. {
  5. echo '<option value"1" selected="selected">1</option>';
  6. }
  7. else
  8. {
  9. echo '<option value"1">1</option>';
  10. }
  11.  
  12.  
  13. if ($rodzaj_gry == '2')
  14. {
  15. echo '<option value"2" selected="selected">2</option>';
  16. }
  17. else
  18. {
  19. echo '<option value"2">2</option>';
  20. }
  21.  
  22. echo 'itd... itd... itd... itd... ';
  23.  
  24. echo "</select>";


Jak idzie ominąć taką konstrukcję, aby dodawało tylko selected="selected" do <option>, które rzeczywiście występuje w bazie bo zapewne jadę na rondzie w koło.

Aha i na koniec pytanie zapisuję do bazy wartość np. 0, 1, 2 itd.
Jeśli zapiszę liczbę powyżej zero jest ok ale nie mogę zapisać 0 dlaczego?
Dodam, że przed zapisem sprawdzam czy zmienna nie jest pusta

  1. if (empty($rodzaj_gry)) $blad .= 'To pole jest puste!!!';


Jeśli tego nie zrobię zapisze tylko pytanie jak to ominąć. Przypuszczam, że "0" traktuje jako pustą wartość.

Ten post edytował kubax33 1.06.2014, 16:55:59
Go to the top of the page
+Quote Post
Turson
post 1.06.2014, 17:03:49
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. <select>
  2. <?php for($i=1;$i<=5;$i++): ?>
  3. <option <?php if($rodzaj_gry==$i) echo ' selected="selected"';?>><?=$i?></option>
  4. <?php endfor; ?>
  5. </select>


Tak, 0 traktuje jako empty.

Możesz policzyć ilość znaków
  1. if(strlen(trim($rodzaj_gry))==0) $blad .= 'To pole jest puste!!!';
Go to the top of the page
+Quote Post
kubax33
post 1.06.2014, 18:57:07
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


Dobrze a co jeśli
  1. <option value="jeden">1</option>
?
Go to the top of the page
+Quote Post
Turson
post 1.06.2014, 19:56:10
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Powiedzmy, że masz opcje jeden,dwa a w bazie danych masz zapisane dwa, to pętlą tutaj się już tego nie zrobi, a trzeba sprawdzać po kolei wartości:
  1. <?php
  2. $a = 'dwa'; //przykładowa wartość np. pobrana z bazy danych
  3. ?>
  4. <select>
  5. <option value="jeden"<?php if($a=='jeden') echo ' selected="selected"';?>>1</option>
  6. <option value="dwa"<?php if($a=='dwa') echo ' selected="selected"';?>>2</option>
  7. </select>

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.05.2025 - 16:42