Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usuwanie rekordów z zaznaczonych 'checkbox'
sadistic_son
post
Post #1





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Mam taki formularz:
  1. <form action=index.php method=post>
  2. <table>
  3. <tr><td> <input type=checkbox name=check[] value=$row[1]> </td><td> Identyfikator to $row[1] </td></tr>
  4. <tr><td> <input type=checkbox name=check[] value=$row[1]> </td><td> Identyfikator to $row[1] </td></tr>
  5. <tr><td> <input type=checkbox name=check[] value=$row[1]> </td><td> Identyfikator to $row[1] </td></tr>
  6. </table>
  7. <input value=submit name=delete ></form>";
Oczywiście wszystkie wiersze tabeli są tworzone przez pętlę zczytującą z bazy danych. $row1[1] to id rekordu z bazy.

Moje pytanie brzmi jak usunąć zaznaczone rekordy. Jeśli zaznaczę np. 5 rekordów to zmienna $_POST['check'] będzie tablicą o 5 elementach. Jak skonstruować pętlę aby usuwała wszystkie rekordy z bazy które zaznaczyliśmy w checkboxie?
To mi nie działa:
  1. if(isset($_POST['delete']) && isset($_POST['check'])){
  2. $delete_id=$_POST['check'];
  3. db_connect();
  4. foreach ($delete_id as $id){
  5. $query="DELETE FROM tabela WHERE id=$id";
  6. mysql_query($query);
  7. }
  8. }


Ten post edytował sadistic_son 11.08.2009, 19:48:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fafu
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


  1. $delete_id=$_POST['check'];
  2. $id = implode("', '", $delete_id);
  3. $query="DELETE FROM tabela WHERE id IN('$id')";
  4. mysql_query($query);
Go to the top of the page
+Quote Post
sadistic_son
post
Post #3





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(Fafu @ 11.08.2009, 21:33:12 ) *
  1. $delete_id=$_POST['check'];
  2. $id = implode("', '", $delete_id);
  3. $query="DELETE FROM tabela WHERE id IN('$id')";
  4. mysql_query($query);



Po przerobieniu na moje potrzeby wygląda to tak:
  1. $delete_id=$_POST['check'];
  2. foreach ($delete_id as $row){
  3. $row = implode("', '", $row);
  4. $query="DELETE * FROM tabela WHERE id_user IN('$row')";
  5. mysql_query($query);}
I nadal NIC (IMG:style_emoticons/default/sciana.gif)

EDIT: Czy to ma być bez pętli?


EDIT 2: Z pętlą, bez pętli, czy tak jak na podanej wyżej stronce nadal nie działa (IMG:style_emoticons/default/sciana.gif) (IMG:style_emoticons/default/sciana.gif) (IMG:style_emoticons/default/sciana.gif) (IMG:style_emoticons/default/sciana.gif) (IMG:style_emoticons/default/sciana.gif)

Ten post edytował sadistic_son 11.08.2009, 20:50:32
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 23:53