Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]/[mysql]usuwanie danych za pomocą checkbox
Lejto
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował Lejto 27.01.2008, 20:42:05
Go to the top of the page
+Quote Post
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
zzeus
post
Post #3





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:16