Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Zapytanie do bazy z automatycznym generowaniem Radio
kracak
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.04.2009

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


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
Go to the top of the page
+Quote Post
pomaranczowy
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.11.2009

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


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.


--------------------
Ekipa pomarańczowy.net
Go to the top of the page
+Quote Post
kracak
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.04.2009

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


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?
Go to the top of the page
+Quote Post
potreb
post
Post #4





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


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.

Ten post edytował potreb 7.11.2009, 17:51:39


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

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: 21.08.2025 - 06:37