Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Aktualizacja kilku rekordów w bazie danych
Forum PHP.pl > Forum > Przedszkole
adams1692
Witam,

Przekopałem już chyba cały internet w poszukiwaniu odpowiedzi na moje pytania, owszem znalazłem kilka odpowiedzi ale nie potrafię ich zastosować otóż chciałbym w jednym formularzu zaktualizować kilka rekordów poniżej podaję kod i napiszcie mi czego tam brakuje:

  1. <?php
  2.  
  3.  
  4. if(isset($_POST['go1'])){ // sprawdzamy czy kliknięto na przycisk do wysyłania formularza.
  5.  
  6.  
  7.  
  8. $zapytanie9 = "UPDATE sklad SET ostatni='$ostatni', zolta='$zolta', czerwona='$czerwona' WHERE id='$id'";
  9. $wykonaj9 = dbquery ($zapytanie9); // dodajemy rekord do bazy
  10.  
  11. if($wykonaj9 == 'TRUE'){
  12.  
  13. echo '<table cellpadding="0" width="100%" bgcolor="#d4d4d4"><tr><td><center><b>Zaktualizowano!</b></center></td></tr></table>'; // wyświetlamy komunikat o poprawnym dodaniu rekordu do bazy
  14.  
  15. }
  16.  
  17. }
  18.  
  19. ?>
  20.  
  21. <form method="POST" action="/viewpage.php?page_id=228">
  22. <table border='0' align='center' cellpadding='3' cellspacing='0' width='618px' rules='rows' frame='hsides'>
  23. <tr>
  24. <td>&bull;</td><td><strong><font size='2'>Imię i nazwisko</strong></font></td><td><font size='2'><strong>Pozycja</strong></font></td><td><strong><font size='2'>Min.</strong></td><td><strong><font size='2'>Ż.k.</strong></td><td><strong><font size='2'>Cz.k.</strong><td><strong><font size='2'>Z/K</strong></td>
  25. </tr>
  26. <?php
  27. $zapytanie = dbquery("SELECT id, nazwa, ostatni, zolta, czerwona, info, klub, zdjecie, pozycja FROM sklad WHERE liga='seniorzy' ORDER BY FIELD (pozycja, 'bramkarz', 'obrońca', 'pomocnik', 'napastnik')");
  28. if (dbrows($zapytanie) != 0) {
  29. $i = 0;
  30. echo "";
  31. while ($data = dbarray($zapytanie)) {
  32. echo "<tr>
  33. <td>&bull;</td><td><font size='2'>".$data['nazwa']."</font></td><td><font size='2'>".$data['pozycja']."</font></td><td><input type='text' class='textbox' name='ostatni' value='".$data['ostatni']."'></td><td><input type='text' class='textbox' name='zolta' value='".$data['zolta']."'></td><td><input type='text' class='textbox' name='czerwona' value='".$data['czerwona']."'><td><img src='/images/".$data['info'].".png'></td>
  34. </tr>";
  35. }
  36. echo "";
  37. } else {
  38. echo "";
  39. }
  40. ?>
  41. </table>
  42. <br /><center><input class="button" type="submit" name="go1" value="Wyślij"></center>
  43. </form>


Proszę o pomoc.
aras785
Cześć. Moje podpowiedzi:

1. Dodaj w formularzu (while...) pole ukryte z name="id[]" (<input type="hidden" name="id[]" />)
2. Do pozostałych pól w formularzu dodaj w name "[]" czyli: ... name="ostatani[]" itd.
3. Po isset($_POST['gol']) zdeklaruj każdy element ze zmiennej $_POST czyli: $id = (int)$_POST['id']; itd...
4. Robisz pętle np. for:
  1. ...
  2. $id = (int)$_POST['id'];
  3. for($i=0;$i<count($id);$i++) {
  4. //tutaj robisz aktulizacje czyli cos takiego:
  5. $q = "UPDATE tabela SET sklad='$sklad[$i]' .... WHERE id='$id[$i]' LIMIT 1";
  6. itd. :)
  7. }



Mam nadzieje, że pomogłem smile.gif Pozdrawiam
adams1692
Dodałem taki kod
  1. <form method="POST" action="/viewpage.php?page_id=277">
  2. <table border='0' align='center' cellpadding='3' cellspacing='0' width='618px' rules='rows' frame='hsides'>
  3. <tr>
  4. <td>&bull;</td><td><strong><font size='2'>Imię i nazwisko</strong></font></td><td><font size='2'><strong>Pozycja</strong></font></td><td><strong><font size='2'>Min.</strong></td><td><strong><font size='2'>Ż.k.</strong></td><td><strong><font size='2'>Cz.k.</strong><td><strong><font size='2'>Z/K</strong></td>
  5. </tr>
  6. <?php
  7. $zapytanie = dbquery("SELECT id, nazwa, ostatni, zolta, czerwona, info, klub, zdjecie, pozycja FROM sklad WHERE liga='seniorzy' ORDER BY FIELD (pozycja, 'bramkarz', 'obrońca', 'pomocnik', 'napastnik')");
  8. if (dbrows($zapytanie) != 0) {
  9. $i = 0;
  10. echo "";
  11. while ($data = dbarray($zapytanie)) {
  12. echo "<tr>
  13. <td>&bull;</td><td><font size='2'>".$data['nazwa']."</font></td><td><font size='2'>".$data['pozycja']."</font></td><td><input type='text' class='textbox' name='ostatni[]' value='".$data['ostatni']."'></td><td><input type='text' class='textbox' name='zolta[]' value='".$data['zolta']."'></td><td><input type='text' class='textbox' name='czerwona[]' value='".$data['czerwona']."'><td><img src='/images/".$data['info'].".png'></td>
  14. </tr>
  15. <input type='hidden' name='id[]' />";
  16. }
  17. echo "";
  18. } else {
  19. echo "";
  20. }
  21. ?>
  22. </table>
  23. <br /><center><input class="button" type="submit" name="go1" value="Wyślij"></center>
  24. </form>
  25.  
  26.  
  27. <?php
  28.  
  29.  
  30. if(isset($_POST['go1'])){ // sprawdzamy czy kliknięto na przycisk do wysyłania formularza.
  31.  
  32.  
  33. $id = (int)$_POST['id'];
  34. $ostatni = (int)$_POST['ostatni'];
  35. $zolta = (int)$_POST['zolta'];
  36. $czerwona = (int)$_POST['czerwona'];
  37.  
  38. for($i=0;$i<count($id);$i++) {
  39.  
  40. $zapytanie9 = "UPDATE sklad SET ostatni='$ostatni[$i]', zolta='$zolta[$i]', czerwona='$czerwona[$i]' WHERE id='$id[$i]' LIMIT 1";
  41. $wykonaj9 = dbquery ($zapytanie9); // dodajemy rekord do bazy
  42.  
  43. if($wykonaj9 == 'TRUE'){
  44.  
  45. echo '<table cellpadding="0" width="100%" bgcolor="#d4d4d4"><tr><td><center><b>Zaktualizowano!</b></center></td></tr></table>'; // wyświetlamy komunikat o poprawnym dodaniu rekordu do bazy
  46.  
  47. }
  48.  
  49. }
  50.  
  51. }
  52.  
  53. ?>


I nadal nic nie działa masz jeszcze jakoś pomysł?
aras785
Zrobiłem to o co Ci chodziło lecz na inne bazie, działa:

  1. <?php
  2. mysql_connect('localhost','test','test'); //połączenie z baza
  3. mysql_select_db('test'); // wybranie bazy
  4.  
  5. if(isset($_POST['go1'])) {
  6. $id = $_POST['id']; //pobranie wszystkich id
  7. $artist = $_POST['artist']; //pobranie wszystkich danych z artist
  8. $title = $_POST['title']; //pobranie wszystkich danych z title
  9.  
  10. $count = count($id); //liczmy ilosc wpisów
  11. for($i=0;$i<$count;$i++) {
  12. //aktualizujemy
  13. mysql_query('UPDATE album SET artist="'.$artist[$i].'", title="'.$title[$i].'" WHERE id='.(int)$id[$i].'');
  14. }
  15. }
  16.  
  17. ?>
  18. <form method="POST" action="">
  19. <table border='0' align='center' cellpadding='3' cellspacing='0' width='618px' rules='rows' frame='hsides'>
  20. <tr><th>Artist</th><th>Title</th></tr>
  21. <?php
  22. //wyswietlamy wszystkich
  23. $zapytanie = mysql_query("SELECT * FROM album");
  24. if (mysql_num_rows($zapytanie) != 0) {
  25. $i = 0;
  26. echo "";
  27. while ($data = mysql_fetch_array($zapytanie)) {
  28. echo ('<tr>
  29. <td><input type="text" name="artist[]" value="'.$data['artist'].'"/></td>
  30. <td><input type="text" name="title[]" value="'.$data['title'].'"/><input type="hidden" name="id[]" value="'.$data['id'].'"/></td>
  31. </tr>');
  32. }
  33. }
  34. ?>
  35. </table>
  36. <br /><center><input class="button" type="submit" name="go1" value="Zapisz"></center>
  37. </form>


Wynik:



Pozdrawiam
adams1692
aras785, działa bardzo dobrze dzięki!
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.