Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Lista rozwijalna <select> pobierana z MySQL ustawiona na konkrentej pozycji
yahreck
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 12.10.2007

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


Jeśli chcę, aby lista rozwijalna była otwarta na jakiejś pozycji to robię to tak:
  1. <?php
  2. echo "<select name='poziom'>";
  3. echo "<option name='poziom'>1</option>";
  4. echo "<option name='poziom'>2</option>";
  5. echo "<option selected name='poziom'>3</option>";
  6. echo "</select>";
  7. ?>


A jak zrobić, aby lista pobierana z bazy została otwarta na wybranej pozycji w poniższym przykładzie?
  1. <?php
  2. $sql = "SELECT * FROM `tabela` ORDER BY `nazwa` ASC";
  3. $sql_result = mysql_query($sql,$conn) or die(mysql_error());
  4. echo "poziom <select name='poziom'>";
  5. while ($row = mysql_fetch_array($sql_result)) {
  6. echo "<option name='poziom'>$poziom</option>";
  7. }
  8. echo "</select>";
  9. ?>

Z góry dziękuję za ewentualne sugestie.

Ten post edytował yahreck 11.06.2009, 10:49:49


--------------------
Człowiek uczy się całe życie, ale i tak głupim umrze.
Go to the top of the page
+Quote Post
polibode
post
Post #2





Grupa: Zarejestrowani
Postów: 232
Pomógł: 1
Dołączył: 11.03.2003

Ostrzeżenie: (20%)
X----


  1. <?php
  2. if ($poziom == 3)
  3.   echo "<option selected name='poziom'>$poziom</option>";
  4.   else
  5.   echo "<option name='poziom'>$poziom</option>";
  6. ?>
Go to the top of the page
+Quote Post
yahreck
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 12.10.2007

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


Dzięki za odpowiedź, ale chyba się źle wysłowiłem.
Chodzi mi o to, że jeśli listę pobieram z bazy MySQL, to gdy spełni warunek listę ustawi na tym miejscu, ale gdy będzie wczytywał kolejne rekordy, warunek nie będzie spełniony i ustawi listę na pierwszej wczytanej pozycji.
Przy założeniu, że jest to ostatnia pozycja, (jak w moim przykładzie) to działa, ale w innym przypadku nie.

Przyszedł mi teraz pomysł, że wyniki z bazy MySQL można wrzucić do tymczasowej zmiennej tablicowej i wtedy wyświetlać według poniższego kodu:
  1. <?php
  2. // jesli 1 poziom
  3. if ($poziom==1){
  4. echo "<select name='poziom'>";
  5. echo "<option selected name='poziom'>$poziom[0]</option>";
  6. echo "<option name='poziom'>$poziom[1]</option>";
  7. echo "<option name='poziom'>$poziom[2]</option>";
  8. echo "</select>";
  9. }
  10. // jesli 2 poziom
  11. if ($poziom==2){
  12. echo "<select name='poziom'>";
  13. echo "<option name='poziom'>$poziom[0]</option>";
  14. echo "<option selected name='poziom'>$poziom[1]</option>";
  15. echo "<option name='poziom'>$poziom[2]</option>";
  16. echo "</select>";
  17. }
  18. // jesli 3 poziom
  19. if ($poziom==3){
  20. echo "<select name='poziom'>";
  21. echo "<option name='poziom'>$poziom[0]</option>";
  22. echo "<option name='poziom'>$poziom[1]</option>";
  23. echo "<option selected name='poziom'>$poziom[2]</option>";
  24. echo "</select>";
  25. }
  26. ?>

Kod się wydłuży, ale i tak będzie działać tylko wtedy, gdy liczba rekordów wyniesie 3, ale przestanie działać, gdy dopiszemy do bazy kolejne rekordy.

hmm ....

Ten post edytował yahreck 11.06.2009, 10:50:30


--------------------
Człowiek uczy się całe życie, ale i tak głupim umrze.
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


  1. <?php
  2. /**
  3.  * @param $selectedList int id wybranego
  4.  * @param $id_name nazwa i id selecta
  5.  **/
  6. function getSelect($selectedList=0,$id_name='vacation_types'){
  7.    $return_value = '<select name="'.$id_name.'" id="'.$id_name.'">'."\n";
  8.    $sql = "SELECT ID, NAME FROM `tabela` ORDER BY `nazwa` ASC";
  9.    $sql_result = mysql_query($sql,$conn) or die(mysql_error());
  10.      while ($row = mysql_fetch_array($sql_result)) {
  11.            $selected = ($selectedList==$row['ID'])? 'selected="selected"': '';
  12.            $return_value .= '<option '.$selected.' value="'.$row['ID'].'">'.$row['NAME'].'</option>'."\n";
  13.        }
  14.      $return_value .= '</select>'."\n";
  15.    return $return_value;
  16. }// end of getSelect
  17. ?>


Ten post edytował vokiel 10.06.2009, 08:40:08


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Proszę o tag tematu.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
yahreck
post
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 12.10.2007

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


Wielkie dzięki vokiel
Celna, cenna, krótka, ale treściwa, konkretna i profesjonalna odpowiedź.
Tego mi było trzeba. Tak trzymać!
Dzięki Tobie czegoś dodatkowego się nauczyłem.
Pozdrawiam.

Ten post edytował yahreck 11.06.2009, 13:13:41


--------------------
Człowiek uczy się całe życie, ale i tak głupim umrze.
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 Aktualny czas: 22.08.2025 - 11:32