Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Update wielu rekordow jednym formularzem (inne wartosci), prosze o pomoc da sie to zrobic?
ultras91
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.01.2007
Skąd: Mielec

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


Witam! Mam maly problem. Potrzebuje zrobic update wielu rekordow z jednej tabeli w formularzu.
Chodzi o to ze z bazy danych maja wybrac sie nazwiska zawodnikow i obok nich pola (bramki, czerwone, zolte, kary) ma byc tam wpisywana ilosc bramek i reszty w danym meczu i nastepnie ma to zupdatowac tego zawodnika. Oczywiscie daloby sie to zrobic wybierajac zawodnika z listy graczy danego meczu i wpisywac to po kolei (to by bylo troche meczace) ale chcialbym aby w jednym formularzu mozna bylo uzupelnic wszystkich zawodnikow. Czy da sie to zrobic w mysql? Zalaczam formularz i zapytanie do tabeli. Prosze o odpowiedz. Z gory dzieki.

formularz:
  1. <?php
  2. echo '<form action="relacja.php?co=5" method="post">';
  3. echo "<br><br>";
  4. $wynik2 = mysql_query("SELECT dom FROM live_kategorie ORDER BY id DESC LIMIT 1")
  5. or die('Źle');
  6. $result=mysql_query($wynik2);
  7. while($r = mysql_fetch_assoc($wynik2)) {
  8. $dom = "".$r[dom]."";
  9. echo '<table class="uni_01"><tr><td colspan="5"><center>'.$r[dom].'</center></td></tr>';
  10. }
  11. $wynik4 = mysql_query("SELECT * FROM pilkarze WHERE klub="$dom" ORDER BY pozycja")
  12. or die("Błąd w zapytaniu!");
  13. echo "";
  14. $result=mysql_query($wynik4);
  15. while($d = mysql_fetch_assoc($wynik4)) {
  16. echo '
  17. <tr><td><center><b><b>'.$d[imie].' '.$d[nazwisko].'</b></center></td><td><input type=text value="'.$d[bramki].'" name="bramki"></td><td><input type="text" value="'.$d[kary].'" name="kary"></td><td><input type="text" value="'.$d[zolte].'" name="zolte"></td><td><input type="text" value="'.$d[czerwone].'" name="czerwone"><input type="hidden" value="'.$d[id].'" name="id"></td></tr>';
  18. }
  19.  
  20.  
  21. echo "</table><br><br>";
  22. $wynik2 = mysql_query("SELECT wyjazd FROM live_kategorie ORDER BY id DESC LIMIT 1")
  23. or die('Źle');
  24. $result=mysql_query($wynik2);
  25. while($r = mysql_fetch_assoc($wynik2)) {
  26. $wyjazd = "".$r[wyjazd]."";
  27. echo '<table class="uni_01"><tr><td colspan="5">'.$r[wyjazd].'</td></tr>';
  28. }
  29. $wynik4 = mysql_query("SELECT * FROM pilkarze WHERE klub="$wyjazd" ORDER BY pozycja")
  30. or die("Błąd w zapytaniu!");
  31. echo "";
  32. $result=mysql_query($wynik4);
  33. while($d = mysql_fetch_assoc($wynik4)) {
  34. echo '
  35. <tr><td><center><b><b>'.$d[imie].' '.$d[nazwisko].'</b></center></td><td><input type=text value="'.$d[bramki].'" name="bramki"></td><td><input type="text" value="'.$d[kary].'" name="kary"></td><td><input type="text" value="'.$d[zolte].'" name="zolte"></td><td><input type="text" value="'.$d[czerwone].'" name="czerwone"><input type="hidden" value="'.$d[id].'" name="id"></td></tr>';
  36. }
  37. echo '<tr><td colspan="5"><center><input type="submit" value="UZUPELNIJ"></center></td></tr></table></form>'; 
  38. ?>


Odbior danych:
  1. <?php
  2. $id = $_POST['id'];
  3. $bramki = $_POST['bramki'];
  4. $kary = $_POST['kary'];
  5. $zolte = $_POST['zolte'];
  6. $czerowne = $_POST['czerowne'];
  7.  
  8.  
  9. $ins = @mysql_query("UPDATE pilkarze SET bramki=bramki+'$bramki', zolte=zolte+'$zolte', czerwone=czerwone+'$czerwone', kary=kary+'$kary' WHERE id=$id");
  10.  
  11. if($ins) echo "Statystyki graczy zaktualizowane";
  12. else echo "Nie udalo sie zaktualizowac";
  13. }
  14. ?>


Ten post edytował ultras91 13.07.2007, 12:31:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
proffix
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.07.2007

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


Najprościej chyba pętlą foreach czyli dla każdego inputa wysyłasz dane w tablicy np. bramka[id_gracza], a później jedynie przetwarzasz dane wysłane $_POST w pętli

Najprostsze rozwiązanie to np.


  1. <input type="text'" name="bramki[id_gracza]" value="2"> - w kodzie PHP zastąp id_gracza swoim identyfikatorem



  1. <?php
  2. foreach($_POST['bramki'] as $key=>$val){
  3.  
  4. @mysql_query("UPDATE pilkarze SET bramki=bramki+'$val' WHERE id=".$key);
  5.  
  6. }
  7. ?>
Go to the top of the page
+Quote Post
ultras91
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.01.2007
Skąd: Mielec

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


Ok dzieki za odpowiedz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Szkoda ze dopiero teraz (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Nastepnym razem to wykorzystam ;] pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:05