Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Update wielu rekordow jednym formularzem (inne wartosci)
Forum PHP.pl > Forum > Bazy danych > MySQL
ultras91
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. ?>
proffix
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. ?>
ultras91
Ok dzieki za odpowiedz smile.gif Szkoda ze dopiero teraz sad.gif Nastepnym razem to wykorzystam ;] pozdrawiam
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.