Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Update dla wielu check-ów
Forum PHP.pl > Forum > Przedszkole
eurosoft
witam, problem mój leży w sposobie napisania funkcji, która aktualizauje bazę SQL w zależności od zaznaczonych checkboxów. na tę chwile mam poniższy kod:
  1. .....
  2. <form name="wyl_low" form action="" method="post">
  3. <center><fieldset>
  4. <legend>Wybierz do wyłączenia</legend>
  5. <?php
  6. $obwody1 = "SELECT * FROM low";
  7. $result2 = mysql_query ($obwody1);
  8. while($nt=mysql_fetch_array($result2))
  9. {
  10. echo '<input type="checkbox" name="nazwa_low" value="'.($nt['nazwa_low']).'">'.($nt['nazwa_low']).'</input>';
  11. }
  12.  
  13. ?>
  14. <br><br><b>Od dnia:
  15. <script>
  16. DateInput('wylaczony_od2', true, 'YYYY-MM-DD')
  17. </script>
  18. Do dnia:</b>
  19. <script>
  20. DateInput('wylaczony_do2', true, 'YYYY-MM-DD')
  21. </script>
  22. <br>
  23. <input type=submit name="wyl_low" style=width: 130 VALUE=Wyłącz>
  24. </fieldset></font></form>
  25.  
  26.  
  27. <?php
  28. $nazwa_low = $_POST['nazwa_low'];
  29. $wylaczony_od2 = $_POST['wylaczony_od2'];
  30. $wylaczony_do2 = $_POST['wylaczony_do2'];
  31. {
  32. if( !empty($_POST['wyl_low']) ){
  33.  
  34. mysql_query("UPDATE low SET wylaczony_do='$wylaczony_do2', wylaczony_od='$wylaczony_od2' WHERE nazwa_low='$nazwa_low'")
  35. or die('Bł&plusmn;d zapytania');
  36. }}
  37. ?>

błąd polega na tym że zapisuje mi wyłącznie ostatniego checkboxa. proszę o radę.
Kamil Pietrzak
skoro kazdy ma
  1. name="nazwa_low"


sprobuj tak:
  1. for($x=0; $nt=mysql_fetch_array($result2); $x++)
  2. {
  3. echo '<input type="checkbox" name="nazwa_low_' . $x . '" value="'.($nt['nazwa_low']).'">'.($nt['nazwa_low']).'</input>';
  4. }


jak mnei pamiec nie myli, to mozna to zapisac jako cos na wzor tablicy


  1. for($x=0; $nt=mysql_fetch_array($result2); $x++)
  2. {
  3. echo '<input type="checkbox" name="nazwa_low[' . $x . ']" value="'.($nt['nazwa_low']).'">'.($nt['nazwa_low']).'</input>';
  4. }


  1. print_r($_POST['nazwa_low'])

eurosoft
Temat rozwiązany. Info dla następców:

  1. ......
  2. echo '<input type="checkbox" name="nazwa_low['.($nt['nazwa_low']).']" value="'.($nt['nazwa_low']).'">'.($nt['nazwa_low']).'</input>';
  3. .......


oraz

  1. ...
  2. if( !empty($_POST['wyl_low']) ){
  3. foreach($nazwa_low as $wyn)
  4. mysql_query("UPDATE low SET wylaczony_do='$wylaczony_do2', wylaczony_od='$wylaczony_od2' WHERE nazwa_low='$nazwa_low[$wyn]'")
  5. or die('Błąd zapytania');
  6. ...
nospor
Samo:
name="nazwa_low[]"
w zupelnosci wystarczy, bez zadne zabawy w indeksy.
Potem w php też już wystarczy tylko:
.... WHERE nazwa_low='$wyn'
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.