Checkbox para apagar mensagens

Frango.

Power Member
Boas.

Tenho um sistema de contacto, em que o pessoal envia a mensagem a partir de um formulário e eu recebo no painel as mensagens que eles enviaram.

O que gostava de por lá, era uma checkbox em cada mensagem e um botão que ao clicar nele apagava as mensagens seleccionadas.

Neste momento eu uso um link, e tenho de apagar uma a uma. O link que uso é:

Código:
'?del=".$id."'
E o código php para apagar:

PHP:
if ($_GET['del']) {
$delete = $_GET['del'];
$delque = "DELETE FROM contacto WHERE id='{$delete}'";
mysql_query($delque);
}

Cumprimentos ;)
 
se para cada box tens um id da checkbox
Código:
<form  .. get ...>
<INPUT TYPE="checkbox"[B] NAME="box0" VALUE="idxx"[/B]>
<INPUT TYPE="checkbox"[B] NAME="box1" VALUE="idxx"[/B]>
<INPUT TYPE="checkbox"[B] NAME="box2" VALUE="idxx"[/B]>
<!--
N de boxs por página
!-->
<[B]input[/B]
        TYPE="hidden"
        VALUE="10"
        NAME="nbox" >
</form>


$nbox=[COLOR=#000000][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'nbox'[/COLOR][COLOR=#007700]];

[/COLOR][/COLOR] for($i=0;$i<[COLOR=#000000][COLOR=#0000bb]$nbox[/COLOR][COLOR=#007700];$i++){[/COLOR][/COLOR]

[COLOR=#000000][COLOR=#007700]if ([/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'box'.$i.''[/COLOR][COLOR=#007700]]) {
[/COLOR][COLOR=#0000bb]$delete [/COLOR][COLOR=#007700]= [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'box'.$i.''[/COLOR][COLOR=#007700]][/COLOR][/COLOR][COLOR=#000000][COLOR=#007700];
[/COLOR][COLOR=#0000bb]$delque [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"DELETE FROM contacto WHERE id='{$delete}'"[/COLOR][COLOR=#007700];
[/COLOR][COLOR=#0000bb]mysql_query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$delque[/COLOR][COLOR=#007700]);
}  [/COLOR][/COLOR]

[COLOR=#000000][COLOR=#007700]}  [/COLOR][/COLOR]
apenas uma ideia.

cumps
 
Última edição pelo moderador:
PHP:
<form  .. get ...>
<INPUT TYPE="checkbox" NAME="box" VALUE="01">
<INPUT TYPE="checkbox" NAME="box" VALUE="02">
<INPUT TYPE="checkbox" NAME="box" VALUE="03">
</form>

$del_id = $_GET['box']

$delque = "DELETE FROM contacto WHERE id IN {$del_id}'";
mysql_query($delque);
}  

}
 
quando seleciono uma mensagem e clico em apagar não faz nada.. qual será o erro?

PHP:
<?php
if (isset($_POST['apagar'])) {
    $del_id = $_POST['id'];
    $delque = "DELETE FROM contacto WHERE id IN {$del_id}'";
    mysql_query($delque);
}

$query = "SELECT * FROM contacto ORDER BY id ASC";
$result = mysql_query($query);

echo "<form action=\"\" method=\"post\" name=\"dados\"><input type=\"submit\" value=\"apagar\" name=\"apagar\" class=\"style2\">";

while ($row = mysql_fetch_assoc($result)) {
$id = $row['id'];
$name = $row['name'];
$mail = $row['mail'];
$assunto = $row['assunto'];
$mensagem = $row['mensagem'];
$data_msg = $row['data_msg'];
$ip = $row['ip'];
echo "<tr><td><input type=\"checkbox\" name=\"id\" value=\"$id\" /> <span class='style3'>".$assunto."</span></td></tr><td><font class='style2'>De: ".$name." - ".$mail."</span></td><tr><td><font size='2px' face='Arial'><br>".$mensagem."</font></td></tr><td><span class='style2'>".$ip." - ".$data_msg." <a href='?del=".$id."'>Eliminar</a></span></td><tr><td><br></td></tr></form>";
}

echo "</form>";

?>

Obrigado :)
 
Já apaga, mas se seleccionar mais que uma so apaga uma..

como resolvo isto?

Cumps ;)

Em vez de apagares apenas um ID especifico, tens de iterar sobre os IDs que te vieram no pedido (de 01 a 99, por exemplo).
Para aqueles que conseguires ler no POST, tens de concatena-los e meter dentro do IN do SQL.
Got it, Frango?
 
Uma parte já está resolvida (agradecimentos ao naoliveira :)), mas sem nenhuma box selecionada, ao clicar no botão 'Eliminar' dá-me este erro:

Código:
Warning:  implode() [[URL="http://localhost/request/function.implode"]function.implode[/URL]]: Invalid arguments passed in C:\wamp\www\request\mail.php on line 140

Como o resolvo?

Line 140:

PHP:
$del_id = implode(",", $_POST['id']);
 
Back
Topo