ďťż

[php][MySQL] Dynamiczna lista wyboru

       

Podstrony


telcocafe

Witam.
Chciałbym na stronie umieścić pole select które pobierałoby listę dostępnych opcji z MySQL.
Stworzenie samej listy działa:
$query="SELECT * FROM lista_pozycji"; $result=mysql_query($query); { echo '<form method="POST" action="lista.php"> <select name="lista" size="">'; while ($wiersz = mysql_fetch_array($result)) { echo '<option value="'. $wiersz[0]. '">'. $wiersz[0]. '</option>'; } } echo '</select> <br /> <input type="submit" value="Dalej"/> </form>';

Problem pojawia się gdu chcę stworzyć funkcję switch działającą na tej samej zasadzie.
Wstawiłem taki skrypt, ale niestety nie działa:

$query="SELECT * FROM lista_pozycji"; $result=mysql_query($query); switch ($_POST['nazwa']) { while ($wiersz = mysql_fetch_array($result)) { echo case $wiersz[0]: echo ('Wybrano: '. $wiersz[0]); break; } }

Próbowałem to rozwiązać już na wiele sposobów ale żaden nie zadziałał, więc prosze o pomoc.



po co switch ? co ma robić - co chcesz osiągnąć ?

Chodzi mi o to żeby po wybraniu jakiejś pozycji z listy po wciśnięciu przycisku dodaj wyświetliło mi który element został wybrany

To nie prościej zbudować zapytanie w stylu
$query="SELECT * FROM lista_pozycji where nazwa=\"$_POST['nazwa']\"";
(oczywiście filtracje POSTu należy jeszcze dodać). Później sprawić czy coś to zapytanie wypluło, jeśli tak to pokazuje co ma tam pokazać, jeśli nie to jakiś error wpakuj. Można jeszcze inaczej nie męczyć się ze switchem tylko skorzystać z if. Czyli na początku tak jak robiłeś a później if:
$query="SELECT * FROM lista_pozycji"; $result=mysql_query($query); while ($wiersz = mysql_fetch_array($result)) { if ($_POST['nazwa'] == $wiersz[0]) echo ('Wybrano: '. $wiersz[0]); }
Użytkownik deallas edytował ten post 08 maj 2007, 17:49


Mam takie coś:
$nazwa = $_POST['lista']; if ($nazwa){ $query="SELECT * FROM lista_pozycji where nazwa="$nazwa""; $result=mysql_query($query); while ($wiersz = mysql_fetch_array($result)) { if ($_POST['nazwa'] == $wiersz[0]) echo ('Wybrano: '. $wiersz[0]); } }
...i wyświetla mi błąd.
NIe wiem co jest zle :(

W zapytaniu SQL powinno być:
$query="SELECT * FROM lista_pozycji where nazwa=\"$nazwa\"";

przed " daj \ a poza tym przecież sygnalizuje ci w której linii jest jaki błąd

Wielkie dzięki już działa.
Nie zauwarzyłem że ten drugi "\" musi być przed cudzysłowem. :clap:

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.