Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Pomoc z listą rozwijaną
Forum PHP.pl > Forum > PHP
koks1429
Witam, mam problem z moją listą rozwijaną, którą chcę umieścić w formularzu.

Lista ma zawierać rekordy pobrane z bazy danych, z tabeli user z pola Kto.
Oto co mam:

  1. Kto: <select name="kto">
  2.  
  3. </option><?php
  4. require 'conn.php';
  5. $result = mysql_query("SELECT * FROM `user` WHERE `Kto` ");
  6. ?></option>
  7. </select>



Jest to zapewne źle, gdyż mam listę rozwijaną ale nie ma w niej nic do wyboru.
Prawdopodobnie muszę wykorzystać http://www.php.net/manual/pl/function.mysql-fetch-array.php
Ale nie wiem jak to zrobić. Mógłby mnie ktoś naprowadzić jak to rozwiązać?

I czy kod mam umieścić między znacznikami <option></option> czy można jakoś zrobić aby było to samo generowane w zależności od ilości rekordów w tabeli
Snap
Dobrze myślisz, musisz wykonać operacje na otrzymanym wyniku z bazy ( u Ciebie $result ) na przykład za pomocą mysql_fetch_assoc.
Następnie na tablicy otrzymanej z mysql_fetch_assoc zrobić pętle, przelecieć po wszystkich elementach tablicy wyświetlając je.

W tej pętli powinieneś umieścić i "wyechować" kod html ( http://www.w3schools.com/tags/tag_option.asp ) odpowiadający za wyświetlania elementu w liście rozwijanej. Wszystko co zwróci pętla powinno znajdować się pomiędzy kodem html ( http://www.w3schools.com/tags/tag_select.asp ), który tworzy rozwijaną listę.
Kshyhoo
Zobacz przykład:
  1. <?php
  2. echo '<select name="ktoed" class="textbox" style="width:150px;">
  3. <option value=""> Kto może edytować </option>';
  4. $zapytanie = "SELECT * FROM logowanie";
  5. $wynik = mysql_query($zapytanie);
  6. while ($dane = mysql_fetch_array($wynik)) {
  7. $login = $dane['login'];
  8. $id_log_k = $dane['id_log'];
  9. if ($id_log == $id_log_k)
  10. echo '<option value='.$id_log_k.' selected>'.$login.'</option>';
  11. else
  12. echo '<option value='.$id_log_k.'>'.$login.'</option>';
  13. }
  14. echo '</select>';
  15. ?>
Danielcom
Zainteresuj się tą funkcją, jest gotowa, wystarczy ją tylko trochę dostosować.
Więcej szczegółów szukaj w google pod hasłem PDO (bardzo polecam)
  1. <?php
  2.  
  3. function user(){
  4. try{
  5. include ("./configuration.php");
  6. $pdo = new PDO('mysql:host='.$mosConfig_host.';dbname='.$mosConfig_db.'', ''.$mosConfig_user.'', ''.$mosConfig_password.'');
  7. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8. echo '<option id="0" value="0">-- nie wybrano --</option>r';
  9. foreach($pdo -> query('SELECT * FROM user') as $user){
  10. echo "<option value=\"".$user['id']. "\">";
  11. echo $user['nazwa'];
  12. echo "</option>";
  13.  
  14. }
  15. } catch (PDOException $e) {
  16. echo 'Jeśli widzisz ten komunikat powiadom administratora.';
  17. }
  18. }
  19. ?>


Przykład jej odpalenia
  1. <select name="id_user">
  2. <?php echo user(); ?>
  3. </select>

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.