Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Problem z checkboxem i aktualizacją bazy
Forum PHP.pl > Forum > Przedszkole
Xeroboj
Witam natrafiłem na wydaje mi się dość banalny problem, ale niestety nie potrafie go rozwiązać.

Posiadam następujacy kod:

  1. <?php
  2. $nick = $_SESSION['nick'];
  3.  
  4.  
  5. include 'include/conn.php';
  6.  
  7. /* zapytanie do konkretnej tabeli */
  8. $wynik = mysql_query("SELECT * FROM typy WHERE nick='$nick' ORDER BY data ASC") or
  9. die('Błąd zapytania');
  10. $temp = '1970-01-01';
  11.  
  12. if (mysql_num_rows($wynik) > 0) {
  13. ?>
  14.  
  15. <table cellpadding="2" border=0>
  16. <?php
  17. while ($r = mysql_fetch_assoc($wynik)) {
  18. if ($r['data'] != $temp) {
  19. ?>
  20.  
  21. <tr>
  22. <td>Gospodarz</td>
  23. <td></td>
  24. <td>Gość</td>
  25. <td>Data<br>Status Meczu</td>
  26. <td></td>
  27. <td>Na Kogo Stawiamy?</td>
  28. <td></td>
  29. <td>Wynik</td>
  30. <td>Sprawdzony?<br>Jeśli tak zaznacz</td>
  31. </tr>
  32. <br><br>
  33. <tr>
  34.  
  35. <tr><td colspan="8" style="text-align:center;"><?php echo $r['data']; ?></td></tr>
  36. <?php
  37. $temp = $r['data'];
  38. }
  39. ?>
  40.  
  41. <td><?php echo $r['gospodarz']; ?></td>
  42. <td>VS</td>
  43. <td><?php echo $r['gosc']; ?></td>
  44. <td>
  45. <?php
  46. if ($r['wynik'] <= 40)
  47. echo "Tego meczu nie typujemy ponieważ są małe szanse na wytypowanie zwycięzcy !!!";
  48.  
  49. elseif ($r['wynik'] >= 41 & $r['wynik'] <= 65)
  50. echo "Nie typujemy lub stawiamy na <b><font color='#E31515' > " .
  51. $lepszy . " z remisem</b></font> za mala stawke !!!";
  52.  
  53. elseif ($r['wynik'] >= 66 & $r['wynik'] <= 100)
  54. echo "Typujemy zwyciestwo + remis.";
  55.  
  56. elseif ($r['wynik'] >= 101 & $r['wynik'] <= 150)
  57. echo "Typujemy Zwyciestwo.";
  58.  
  59. elseif ($r['wynik'] > 150)
  60. echo "Typujemy za wieksza stawke.";
  61.  
  62. echo "<br><br>";
  63. ?>
  64. <form action="index.php?go=mojetypy" target="_self" method="post">
  65. </td>
  66. <td> na </td>
  67. <td><font color='#E31515' ><?php echo $r['lepszy']; ?></font></td>
  68. <td>Z Wynikiem Równym:</td>
  69. <td><?php echo $r['wynik']; ?></td>
  70. <td><input name="chk1" value="1" type="checkbox"></td>
  71. <td><input type="submit" name="Submit" value="Update">
  72. </tr>
  73. </form>
  74. <?php
  75. $id=$r['id'];
  76. $checkbox1 = $_POST['chk1'];
  77. $value = $_POST['1'];
  78.  
  79. if (isset($_POST['Submit'])) {
  80.  
  81. include("include/conn.php");
  82.  
  83. $query="UPDATE typy SET zgodny='1' WHERE id='$id' AND nick='$nick' ";
  84. mysql_query($query) or die(mysql_error());
  85.  
  86. echo "Dane zostały zaktualizowane.";
  87. }
  88.  
  89. ?>
  90.  
  91. <?php
  92. }
  93. ?>
  94. </table>
  95. <?php
  96. }
  97. ?>
  98.  


niestety aktualizuje mi wszystkie rekordy w bazie a nie konkretny przy którym zostal zaznaczony checkbox. Czy ktoś mógłby wskazać mi miejsce gdzie popełniam błąd ?
ethann
KOD JEST KOMPLETNIE NIECZYTELNY! Staraj się trzymać jakiś porządek w kodzie bo szybciej się zgubisz niż skończysz pisać. My jako osoby, które chcą pomóc także chciałby się skupić na tym co mają zrobić, aniżeli na sprzątaniu śmietnika. Poza tym sporo błędów nawet w HTML.

Twój formularz nie ma kompletnie sensu. Każdy formularz zawarty na stronie jest taki sam, czyli załóżmy masz z 20 rekordów do wyświetlenia to wyświetli Ci 20 TAKICH SAMYCH formularzy.
Aby zanalizować zaznaczone opcje, tzn wszystkie naraz musisz utworzyć jeden formularz. Oraz sprawdzić go raz (poza pętlą).
$_POST['1'] nie przyjmie wartości, a w przypadku wyświetlania błędów przez parser dostaniesz WARNING o braku indeksu '1'. Klucze w tablicy POST są takie jak parametry "name" przy inputach/textareach/selectach.
include("include/conn.php"); korzystasz z tego dwukrotnie co jest błędne w tym przypadku.
  1. $query="UPDATE typy SET zgodny='1' WHERE id='$id' AND nick='$nick' ";

$id jest to pole id, które wyciągasz z bazy danych. Do tego wykonujesz to przy każdym elemencie wyciąganym z bazy, więc jeśli formularz zostanie wysłany, to każdy element który wyświetlasz zostanie także zaktualizowany.
[ ... ]

Proponuję zacząć od czegoś prostszego albo przynajmniej nauczyć się czegokolwiek (HTML/PHP) chociaż na poziomie podstawowym.
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.