Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Checkbox i usuwanie wpisów z bazy
Forum PHP.pl > Forum > Przedszkole
motylas
Witam, przeszukałem forum odnosnie checkboxow i rozne warianty juz wyprobowalem jednak ciagle mi to nie dziala.
Sprawa wyglada tak, ze mam strone main.php na ktorej wyswietlaja sie wpisy z bazy w postaci tabelki - do tego generuja mi sie checkboxy do kazdego rekordu. W naglowku mam przycisk "submit" ktory ma za zadanie usuwac zaznaczone rekordy - tzn zaznaczam checkboxa obok danego rekordu , naciskam przycick "usun" z naglowka i ma usunąć, jednak nie usuwa ....
Mozliwe ze zapytanie sql blednie jest sformulowane, probowalem rozne skladnie i nic mi to nie dalo.

oto kod: main.php

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <link rel="stylesheet" type="text/css" href="style.css" />
  5. </head>
  6. <body>
  7. <div align="center">
  8. <table align="center">
  9. <tr>
  10. <td>
  11. <form action="dodaj.php" method="post">
  12. <input type="submit" value="Dodaj Wpis" />
  13. </form></td>
  14. <td>
  15. <form action="edytuj.php" method="post">
  16. <input type="submit" value="Edytuj Wpis" />
  17. </form>
  18. </td>
  19. <td>
  20. <form action="usun.php" method="post">
  21. <INPUT name='usun[]' value='Usuń zaznaczone' type='submit' onClick="return confirm('Chcesz to usunac?')">
  22. </form>
  23. </td>
  24. </tr>
  25.  
  26. </table>
  27. </div> <br>
  28. <?php
  29. $connect="localhost";
  30. $username="xxx";
  31. $password="xxx";
  32. $connect= mysql_connect($connect, $username, $password)
  33. or die ("sprawedz polaczenie z serwerem");
  34. mysql_select_db("user_list");
  35.  
  36.  
  37. echo "<table align=\"center\" border=\"1\"cellpadding=\"0\" cellspacing=\"0\" width=\"100\">";
  38. echo "<thead>";
  39. echo "<tr>";
  40. echo "<td>";
  41. echo "id";
  42. echo "</td>";
  43. echo "<td>";
  44. echo "Nazwisko";
  45. echo "</td>";
  46. echo "<td>";
  47. echo "Imie";
  48. echo "</td>";
  49. echo "<td>";
  50. echo "Login";
  51. echo "</td>";
  52. echo "<td>";
  53. echo "User";
  54. echo "</td>";
  55. echo "<td>";
  56. echo "Pass";
  57. echo "</td>";
  58. echo "<td>";
  59. echo "Wydzial";
  60. echo "</td>";
  61. echo "<td>";
  62. echo "Edycja";
  63. echo "</td>";
  64. echo "</tr>";
  65. echo "</thead>";
  66.  
  67.  
  68. $query= ("select * from dane");
  69. $result= mysql_query($query);
  70. while($row = mysql_fetch_array($result)) {
  71. $id=$row['id'];
  72. echo "<tfoot>";
  73.  
  74. echo "<tr>";
  75. echo "<td>";
  76. echo $row['id'];
  77. echo "</td>";
  78. echo "<td>";
  79. echo $row['nazwisko'];
  80. echo "</td>";
  81. echo "<td>";
  82. echo $row['imie'];
  83. echo "</td>";
  84. echo "<td>";
  85. echo $row['login'];
  86. echo "</td>";
  87. echo "<td>";
  88. echo $row['user'];
  89. echo "</td>";
  90. echo "<td>";
  91. echo $row['pass'];
  92. echo "</td>";
  93. echo "<td>";
  94. echo $row['wydzial'];
  95. echo "</td>";
  96.  
  97. echo "<td><input type='checkbox' name='usun' value=$id></td>";
  98.  
  99. echo "</tfoot>";
  100.  
  101. }
  102.  
  103. echo"</table>";
  104.  
  105. ?>
  106. </body>
  107. </html>


Do tego mam plik usun.php, w ktorym mam zapytanie do bazy:

  1. <?php
  2. $connect="localhost";
  3. $username="xxx";
  4. $password="xxx";
  5. $connect= mysql_connect($connect, $username, $password)
  6. or die ("sprawedz polaczenie z serwerem");
  7. mysql_select_db("user_list");
  8.  
  9.  
  10. foreach ($_POST['usun'] as $id)
  11. {
  12. if(!empty($id))
  13. {
  14. $zapytanie = "DELETE FROM dane WHERE id IN=('".$id."')";
  15. mysql_query($zapytanie);
  16. }
  17. }
  18. echo header("refresh:2;url=main.php"); ?>
nospor
<form action="usun.php" method="post">
<INPUT name='usun[]' value='Usuń zaznaczone' type='submit' onClick="return confirm('Chcesz to usunac?')">
</form>

Przecież ty w formie masz tylko przycisk USUN......
W formularzu mają być również checkboxy, które zaznaczasz. W przeciwnym wypadku one ci się nie wyślą...
motylas
No wlasnie, problem jest w tym ze checkboxy mam w petli i musza tam byc zeby mi dynamicznie je tworzylo w zaleznosci od tego ile mam wpisow w bazie, a przycisk mam w naglowku ....

zrobilem tak: nie wiem czy o to chodzilo ale nadal nie dziala smile.gif
  1. $query= ("select * from dane");
  2. $result= mysql_query($query);
  3. while($row = mysql_fetch_array($result)) {
  4. $id=$row['id'];
  5. echo "<tfoot>";
  6.  
  7. echo "<tr>";
  8. echo "<td>";
  9. echo $row['id'];
  10. echo "</td>";
  11. echo "<td>";
  12. echo $row['nazwisko'];
  13. echo "</td>";
  14. echo "<td>";
  15. echo $row['imie'];
  16. echo "</td>";
  17. echo "<td>";
  18. echo $row['login'];
  19. echo "</td>";
  20. echo "<td>";
  21. echo $row['user'];
  22. echo "</td>";
  23. echo "<td>";
  24. echo $row['pass'];
  25. echo "</td>";
  26. echo "<td>";
  27. echo $row['wydzial'];
  28. echo "</td>";
  29. echo "<form method='post'>"; <-----
  30. echo "<td><input type='checkbox' name='usun' value=$id></td>"; <-----
  31. echo "</form>"; <-----
  32. echo "</tfoot>";
  33. }
nospor
Cytat
No wlasnie, problem jest w tym ze checkboxy mam w petli i musza tam byc zeby mi dynamicznie je tworzylo w zaleznosci od tego ile mam wpisow w bazie
Co ty nie powiesz..... tongue.gif

No jasna rzecz ze masz to w petli skoro pobierasz to z bazy.... Ale jaki problem dać to w form??
Mowie ci po raz ostatni: checkboxy i przycisk usun mają być w JEDNYM formie.
Czy tak trudno zrobic tak:

<form>
petla z generująca checkboxy
przycisk USUN
</form>

Jakiś problem?
I checkbox mają mieć nazwe np taką: ids[] a guzik usuwający ma miec nazwe np. usun. Wkoncu to checkboxy maja byc tablicą a nie na odwrót
motylas
Idac twoim tokiem zrobilem tak:

  1. .....................
  2. echo "<form action='usun.php' method='post'>";
  3. echo "<td><INPUT name='usun' value='Usuń zaznaczone' type='submit' onClick='return confirm('Chcesz to usunac?')'></td>";
  4. echo "<td><input type='checkbox' name='usun[]' value=$id></td>";
  5. echo "</form>";
  6. .....................

Nie wiem czy name guzika moze byc takie jak name checka bo nadal nie dziala ;p minus tego rozwiazania jest taki ze generuje mi tyle guzikow usun ile checkow a ja chcialem wszystko usuwac jednym guzikiem z naglowka (ale to nie wazne, jak by mi zadzialal twoj sposob to tez bylbym szczesliwy )tongue.gif

nospor
Przepraszam, niech ktoś inny się z tobą użera.
Podałem ci prosty kod
<form>
petla z generująca checkboxy
przycisk USUN
</form>
A Ty nawet tego nie potrafisz zrobić... Wyraźnie ci napisałem: checkboxy i przycisk usun mają być w JEDNYM formie. A ty co? A ty nadal generujesz tyle form ile masz checkboxów....
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.