Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zapytanie do bazy z automatycznym generowaniem Radio
Forum PHP.pl > Forum > Przedszkole
kracak
Witam nie wiem jak zabrać się za rzecz następującą. Posiadam proste pole do wpisania tekstu na podstawie którego przeszukiwana jest baza i automatycznie wyświetlana w formie tabeli na stronie. Chciałbym, żeby kolo każdej pozycji były dodane opcje wyboru (radio). Przypuśćmy dla 100 produktów chciałbym wtedy każdemu wybrać jakaś opcję i żeby po wciśnięciu przycisku opcje te zostały zapisane do odpowiednich pól w bazie. Zapytania do bazy wiem jak porobić nie wiem tylko jak zrobić ten dynamicznie tworzący się formularz. Oto kod który udało mi się stworzyć. Dalej nie mam koncepcji jak to podejść.

  1. <html>
  2. <body>
  3. <form method="post" action="">
  4. Nasz nr katalogowy: <input type="text" name="nr_kat_nasz">% zastepuje kazdy caly ciag znakow<br>
  5.  
  6. <input type="submit" value="ok">
  7. <table border=1>
  8. <?php
  9.  
  10. $nr_kat_nasz=$_POST['nr_kat_nasz'];
  11. $baza=baza;
  12. $polaczenie=@mysql_connect("localhost","root","haslo") or die("Próba połączenia z bazą danych nie powiodła się.");
  13. $db=@mysql_select_db($baza, $polaczenie) or die("Nie istnieje podana baza danych.");
  14.  
  15.  
  16. $sql="SELECT * FROM `spis` WHERE `nr_kat_nasz` LIKE '$nr_kat_nasz'";
  17. $result=@mysql_query($sql, $polaczenie) or die("wykonanie zapytania nie powiodło się");
  18.  
  19.  
  20. while ($odczyt = mysql_fetch_row($result))
  21. {
  22.  
  23. echo "<tr><td><input type='radio' name=$zaznacz[]></td><td>$odczyt[0]</td><td>$odczyt[1]</td><td>$odczyt[2]</td><td>$odczyt[3]</td><td>$odczyt[4]</td><td>$odczyt[5]</td><td><a href=$odczyt[6]><img border=0 src=$odczyt[6]></a></td><td><a href=$odczyt[7]><img border=0 src=$odczyt[7]></a></td></tr>";
  24.  
  25. }
  26.  
  27. ?>
  28. </table></form>
  29.  


Wiem że te radio muszą być w jednej tablicy ale co z ich value? bo tego właśnie nie wiem i jak to dalej potem przetworzyć? Będę wdzięczny za każda podpowiedz. Pozdrawiam
pomaranczowy
Czemu radio, a nie checkbox?
Można zrobić tak, że generujesz dla każdego otrzymanego rekordu taki checkbox oraz pole z wartością do zmiany:
  1. echo "<input type='checkbox' name='id_".$id."'>";
  2. echo "<input type='text' name='value_".$id."'>";

i teraz w skrypcie, który robi update do bazy przypomocy funkcji explode rozdzielasz sobie 'id_".$id." i masz tablice odfajkowanych rekordów. Teraz robisz to samo z wartościami, wybierasz te które mają być zmienione i zmieniasz.
kracak
ale jak taki checkbox czy radio powiazac z wpisem w bazie. Chodzi o to zeby dany produkt mial do wyboru 4 opcje
pomaranczowy
bialy
zielony
usun
i w zaleznosci od kategorii zeby ja wpisalo w pole w bazie [kategorie] a usun zeby usuwalo wpis w bazie?
potreb
Cytat(kracak @ 7.11.2009, 15:48:13 ) *
ale jak taki checkbox czy radio powiazac z wpisem w bazie. Chodzi o to zeby dany produkt mial do wyboru 4 opcje
pomaranczowy
bialy
zielony
usun
i w zaleznosci od kategorii zeby ja wpisalo w pole w bazie [kategorie] a usun zeby usuwalo wpis w bazie?


Rozbijanie expoldem? Nie wiem czy to rozwiązanie jest dobre.
Ja u siebie zastosowałem taki schemat.
  1. <input type='checkbox' value='red' name='produkt[$id][delete]' />
  2. <input type='checkbox' value='red' name='produkt[$id][pomaranczowy]' />


Pętla foreach rozbija posta produkt wybiera id, który ma być zaktualizowany, następnie robi akcję, jeżeli znajdzie delete kasuje rekord, w przeciwnym wypadku robi update i dodaje wartość np pomaranczowy.

Jeszcze taka uwaga to kodu:
  1. echo "<tr><td><input type='radio' name=$zaznacz[]></td><td>$odczyt[0]</td><td>$odczyt[1]</td><td>$odczyt[2]</td><td>$odczyt[3]</td><td>$odczyt[4]</td><td>$odczyt[5]</td><td><a href=$odczyt[6]><img border=0 src=$odczyt[6]></a></td><td><a href=$odczyt[7]><img border=0 src=$odczyt[7]></a></td></tr>";


Dla zmiennych php wewnątrz kodu html - ". $zaznacz[] ." i tak dla reszty wtedy będzie przy okazji czytelniejsze.
Nie wiem czy fetch_row jest lepsze od fetch_array, ale w przpadku mysql_fetch_array jasne jest do jakiej kolumny się odnosisz.
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.