Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]/[mysql]usuwanie danych za pomocą checkbox
Forum PHP.pl > Forum > PHP
Lejto
Mam kod z który wyświetla listę danych z mysql i za pomocą pola checkbox chce je usunąć ale to nie działa zawsze jak zaznaczę np. 4 to usunie 1.
Kod:
  1. <?php
  2. //kod[..]
  3.  elseif($privmsg==inbox)
  4. {
  5.  
  6.  menu_msg();
  7. $sql = "SELECT * FROM $private_msg WHERE do = '".$_SESSION['prawid_uzyt']."' order by id desc";
  8. $query = mysql_query($sql);
  9. $query = mysql_query($sql);
  10. $rows = mysql_num_rows($query);
  11.  
  12. echo "<table width='490' align='center' bgcolor=\"#FFFFCC\" border=\"1\" cellspacing=\"0\" cellpadding=\"1\"><tr height='25' style='background-image: url(images/wiadomosci.gif)'><th>Flaga</th><th>Temat</th><th>Od</th><th>Data</th><th>Zaznacz</th></tr>";
  13.  
  14.  for($i=0; $i < $rows; $i++)
  15.  {
  16. $row = mysql_fetch_array($query);
  17.  
  18.  
  19.  echo "<tr bordercolordark=#FFFF99
  20.  bordercolorlight=#3399FF bgcolor=#f7f7f7 ><td><center><img src='images/$row[obraz]'></center></td>";
  21. echo "<td id='tr' id='privtlo2'><a href='?privmsg=inbox_pokaz&id=$row[id]'>$row[temat]</a></td><td><a href=?kto=pokaz&id=$row[numer_usera]>$row[od]</a></td><td><center>$row[date_of_send]</center></td><td>";
  22. ?>
  23. <form method="post" action="?privmsg=usun">
  24. <input type="checkbox" name="usun[]" value="<? echo ($row[id]) ?>" /></td>
  25.  
  26. <?
  27.  
  28. echo "</tr>";
  29.  
  30.  } 
  31. /*
  32.  echo "<tr width=490 align=\"right\" bgcolor=\"#99a0b0\"><td> <input type=\"submit\" value=\"Usuń zaznaczone\"/></td></tr>";
  33. */
  34. ?>
  35. <tr>
  36. <td id="tabelka" colspan="5" height="28" align="right"> 
  37. <input type="submit" name="save" value="Zapisz Zaznaczone" class="mainoption" />
  38. &nbsp;
  39. <input type="submit" name="delete" value="Usuń Zaznaczone" class="liteoption" />
  40. &nbsp;
  41. </td>
  42. </tr>
  43. <?
  44. echo "</table>";
  45. ?>
  46. </form>
  47.  <?
  48.  
  49. }
  50. elseif($privmsg==usun){
  51.  
  52. $usun = $_POST['usun'];
  53. echo ($usun);
  54.  
  55.  
  56. $sql = "DELETE FROM private_msg WHERE id = '$usun'";
  57. $query = mysql_query($sql);
  58.  
  59. if(!$query)
  60. {
  61. echo'Błąd bazie MySQL!<br>';
  62. echo mysql_errno() . ": " . mysql_error(). "\n"; exit;
  63. }
  64. }
  65. //kod[..]

zmieniałem wartość name na inne poprawne wartości ale nic z tego
elseif działa poprawnie
kossa
Przy każdym checboxie zrobiłeś tablicę usun[] zatem wykonując usuwanie musisz w pętli odczytać tablicę i usunąć pozycję po pozycji a Ty odczytujesz tylko zmienną $_POST["usun"];

Łukasz
zzeus
Możesz spróbować też coś takiego, jako że po stronie php dostaniesz tablice usun[] z zaznaczonymi elementami, to za pomoca fukcji implode laczysz sobie id
$tab = implode(",", $_POST['usun']);

i pozniej zapytanie SQL
DELETE * FROM tabela WHERE id IN ($tab)

Nie wiem czy to napewno zadziala, ale zawsze lepiej tak pokombinowac niz w petli odczytywac kolejne id i katowac baze kolejnymi zapytaniami
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.