Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Usuwanie zaznaczonych checkboxów o różnych ID
Forum PHP.pl > Forum > Przedszkole
kondziu9516
Witam,
Otóż mam problem tego typu:
Mam skrypt który wyświetla wszystkie wiadomości z bazy danych.
Każda wiadomość ma inne ID i nie da się tego dokładnie określić ile tych ID w bazie będzie.

Z boku tabeli zrobiłem checkboxy, ale jak je teraz przesłać?
Jak przesłać wszystkie zaznaczone i usunąć te zaznaczone?
Zaznaczeń może być wiele (np. 1 albo 5 albo 21)

Oto mój kod skryptu:

  1.  
  2. $result2 = mysql_query("SELECT * FROM wiadomosci WHERE dokogo='$nick' ORDER BY id DESC") or die(mysql_error());
  3. echo'<h3><font size="5">Skrzynka odbiorcza</font></h3>
  4.  
  5. <div style="margin-left:700px; margin-top:30px;" class="button_012"><a href="index.php?s=mojekonto"><font style="margin-left:-20px;">Wróć do konta</font></a></div><br><br><br><br>
  6. <div style="margin-left:700px;" class="button_012"><a href="index.php?s=nowa-wiadomosc&action=new-message"><font style="margin-left:-20px;">Napisz wiadomość</font></a></div>
  7. <br><br><br><br>
  8. <div style="margin-left:700px;" class="button_012"><a href="index.php?s=wiadomosci-send"><font style="margin-left:-20px;">Wysłane wiadomości</font></a></div>';
  9. echo "<font color='black'> ";
  10. echo'<form method=post action="">
  11. <table width="660" border="0" cellspacing="1" cellpadding="0" style="margin-top:-100px;">
  12.  
  13. <td class="row2" width="10"><b><font size="3" color="#882300"></font></td>
  14. <td class="row2" width="250"><b><font color="#882300" style="font-size: 13px;">Tytuł wiadomości</font></td>
  15. <td class="row2" width="80"><b><font color="#882300" style="font-size: 13px;">Nadawca</font></td>
  16.  
  17.  
  18. <td class="row2" width="80"><b><font color="#882300" style="font-size: 13px;">Data</font></td>
  19. <td class="row2" width="10"><b><font size="3" color="#882300"></font></td>
  20.  
  21. <tr>
  22. <td><hr /></td>
  23. <td><hr /></td>
  24. <td><hr /></td>
  25. <td><hr /></td>
  26.  
  27. </tr>
  28. ';
  29.  
  30.  
  31.  
  32. while ($dane=mysql_fetch_array($result2)) {
  33.  
  34.  
  35. echo "<tr>";
  36. if ($dane[przeczyt] == '0'){
  37. echo '<td class="row1" width="10"><center><a href="index.php?s=wiadomosci-podglad&action=podglad-message&amp;id='.$dane[id].'"><img src="images/nprzeczytana.gif"></td>';
  38. echo '<td class="row1" width="100"><a style="color: black; text-decoration: none;" href="index.php?s=wiadomosci-podglad&action=podglad-message&amp;id='.$dane[id].'"><b>'.$dane[tytul].'</td>';
  39. echo '<td class="row1" width="100"><a style="color: black; text-decoration: none;" href="index.php?s=wiadomosci-podglad&action=podglad-message&amp;id='.$dane[id].'"><b>'.$dane[wyslal].'</b></a></td>';
  40.  
  41. echo "<td class='row1' width='100'>".$dane[datasend]."</td>";
  42. } else {
  43. echo '<td class="row1" width="10"><center><a href="index.php?s=wiadomosci-podglad&action=podglad-message&amp;id='.$dane[id].'"><img src="images/przeczytana.gif"></td>';
  44. echo '<td class="row1" width="100"><a style="color: black; text-decoration: none;" href="index.php?s=wiadomosci-podglad&action=podglad-message&amp;id='.$dane[id].'">'.$dane[tytul].'</td>';
  45. echo '<td class="row1" width="100"><a style="color: black; text-decoration: none;" href="index.php?s=wiadomosci-podglad&action=podglad-message&amp;id='.$dane[id].'">'.$dane[wyslal].'</a></td>';
  46.  
  47. echo "<td class='row1' width='100'>".$dane[datasend]."</td>";
  48. echo '<td class="row1" width="10"><input value="'.$dane[id].'" title="'.$dane[id].'" type="checkbox" name="kasuj[]"></td>';
  49. }
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. echo "</tr>";
  59. }
  60. echo "</table>
  61. ";
  62. echo'<input type="submit" name="action" value="kasuj">';
  63. echo"</form>
  64.  
  65. <br><br>LEGENDA:<br>
  66. <img src='images/przeczytana.gif'> Wiadomości przeczytane<br>
  67. <img src='images/nprzeczytana.gif'> Wiadomości nieprzeczytane
  68. ";
  69.  
  70.  
  71. echo" </font>";


Chodzi tutaj zapewne o ten kawałek kodu:
  1. echo '<td class="row1" width="10"><input value="'.$dane[id].'" title="'.$dane[id].'" type="checkbox" name="kasuj[]"></td>';


Ale jak to potem przesłać dalej?
stefan33
Na wszelki wypadek poprzedz sobie te value jakbys jeszcze cos mial przesylac w formularzu kiedykolwiek np.
  1. echo '<td class="row1" width="10"><input value="delete_'.$dane[id].'" title="'.$dane[id].'" type="checkbox" name="kasuj[]"></td>';


I potem
  1. foreach ($_POST as $delete_msg)
  2. {
  3. if(preg_match('/^delete_.*/',$delete_msg)]
  4. {
  5. //kod do usuniecia
  6. }
  7. }
kondziu9516
Dzięki a jak to wywołać, aby zrobić to w tym samym pliku??

coś ala ? :
  1. if ($_POST["action"] == "kasuj") {
  2.  
  3.  
  4. }


a button?

  1. echo'<input type="submit" name="action" value="kasuj">';


Oczywiście leci + i poleci kolejny za pomoc wink.gif
stefan33
sorki tam w pospiechu na odwrot wypelnilem juz poprawiam:
  1. P
  2. echo '<td class="row1" width="10"><input value="'.$dane[id].'" title="'.$dane[id].'" type="checkbox" name="kasuj_'.$dane[id].'"></td>';


Jest ok wg mnie, dopisz reszte kodu, przetestuj i w razie jakby cos nie dzialalo to pisz wink.gif
kondziu9516
  1. if ($_POST["action"] == "kasuj") {
  2. foreach ($_POST as $delete_msg)
  3. {
  4. if(preg_match('/^delete_.*/',$delete_msg)]
  5. {
  6.  
  7. $result = mysql_query("UPDATE wiadomosci SET przeczyt='0' WHERE id='$questionmark.gifquestionmark.gifquestionmark.gif'") or die(mysql_error());
  8.  
  9. //kod do usuniecia
  10. }
  11. }
  12.  
  13. }


A powiedz mi jak zrobić coś takiego?
Bo głównie chodzi, żeby zaaktualizować to co wybrane w tabeli na przeczyt='0'.
Napisałem usuwanie, bo wydaje mi się zasada ta sama...
Czyż nie?

A co tać tam WHERE id='$?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif'
A i ta linijka ma tak zostac czy zmienić to i jak?

  1. if(preg_match('/^delete_.*/',$delete_msg)]

Chyba raczej to delete na kasuj no nie??

Proszę o pomoc, z góry wielkie dzięki i plusik za tamto ;-)
stefan33
Lekka edycja:
  1. if ($_POST["action"] == "kasuj") {
  2. foreach ($_POST as $delete_msg=>$msg_id)
  3. {
  4. if(preg_match('/^kasuj_.*/',$delete_msg)]
  5. {
  6.  
  7. $result = mysql_query("UPDATE wiadomosci SET przeczyt='0' WHERE id='$msg_id'") or die(mysql_error());
  8.  
  9. //kod do usuniecia
  10. }
  11. }
  12.  
  13. }


Hmm nie wiem co dokladnie chcesz osiagnac ale zasada wyglada na ta sama tongue.gif tak, tak delete na kasuj tez zmienic trzeba tongue.gif
kondziu9516
No i błąd: Parse error: syntax error, unexpected ']'

uczepił się o linikję:

  1. if(preg_match('/^kasuj_.*/',$kasuj_msg)]


A całość zrobiłem tak:

  1. if ($_POST["action"] == "kasuj") {
  2. foreach ($_POST as $kasuj_msg=>$kasuj_id)
  3. {
  4. if(preg_match('/^kasuj_.*/',$kasuj_msg)]
  5. {
  6.  
  7. $result = mysql_query("UPDATE wiadomosci SET przeczyt='0' WHERE id='$kasuj_id'") or die(mysql_error());
  8.  
  9. //kod do usuniecia
  10. }
  11. }
  12.  
  13. }
stefan33
Wpisalo mi sie przez przypadek "]", wiec musisz usunac. Tak ogólnie to nie powinies kopiowac "na pale" tego co Ci wpisze tylko postarac sie zrozumiec i samemu napisac..
kondziu9516
Zaraz to sprawdzę tylko mi coś hosting nawala ;-)
Aż dziwne bo nigdy się nie zawiodłem.


Wielkie dzięki !
Działa ;-)
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.