Problema ad eliminare record con checkbox

Salve a tutti, mi sono appena iscritto!

complimenti per il forum, è davvero completo.

Premesso che sono agli inizi con php, ma devo dire che mi ha fin da subito affascinato.

E' da un po' che sto cercando di capire come eliminare dei record all'interno di una tabella html attraverso un checkbox. Ho una tabella con i seguenti campi "ID" "Nome" "Cognome" "seleziona".

in seleziona ho all'interno per ogni record un checkbox, gli altri campi parlano da soli :P

in pratica in questa tabella ho tutti i miei contatti, in fondo a questa tabella c'e' un bottone chiamato "elimina i box selezionati". In pratica per ibox che seleziono, al click in basso sul bottone, vorrei che si cancellassero appunto i record spuntati!

questo e' quello che ho realizzato

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>Documento senza titolo</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
</head>
<body>

 <?php
 $username="root";
 $password="x";
 $database="prova2";
 
 mysql_connect(localhost,$username,$password);
 @mysql_select_db($database) or die("Impossibile selezionare il database");
 $query="SELECT * FROM contatti";
 $risultati=mysql_query($query);
 
 $num=mysql_numrows($risultati);
 
 mysql_close();
 ?>
 <?php echo "<center><b>Tutti i risultati</b></center>"; 
 ?>
 <br>
 <center><table width="200" border="1" cellspacing="2" cellpadding="2">
 <tr>
 <th><font face="Arial, Helvetica, sans-serif">ID</font></th>
 <th><font face="Arial, Helvetica, sans-serif">Nome</font></th>
 <th><font face="Arial, Helvetica, sans-serif">Cognome</font></th>
 <th><font face="Arial", Helvetica, sans-serif!>Seleziona</font></th>
</tr>
 <?php
     $i=0;
     while ($i < $num) {
       $id=mysql_result($risultati,$i,"id");
         $nome=mysql_result($risultati,$i,"nome");
         $cognome=mysql_result($risultati,$i,"cognome");
         
 ?>
 
<tr>
     <td><font face="Arial, Helvetica, sans-serif"><?php echo $id;?></font></td>
     <td><font face="Arial, Helvetica, sans-serif"><?php echo $nome;?></font></td>
     <td><font face="Arial, Helvetica, sans-serif"><?php echo $cognome;?></font></td>
     <td><center><form name="form1" method="post" action="elimina.php">
    <input name="checkbox[]" type="checkbox" value="<? echo $id ?>"></center></td>
     
  
<?php 
 
 $i++; 
 } 
 ?>

 </tr>
 
 </table>
<br />
<input type="submit" name="submit" value="Elimina selezionati!" />
</form>
</body>
</html>

in questa pagina html c'e' la tabella con i record, i box all interno di ogni record e, infine, il tasto "elimina" in fondo alla pagina

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
<?php
$host="127.0.0.1";
$user="root";
$password="x";
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="prova2";
mysql_select_db($db_name,$myconn);

foreach ($_POST['checkbox'] as $key => $m_id)
{
   mysql_query("DELETE FROM contatti WHERE id = $m_id");
}
?>
</body>
</html>

questo iinvece è lo script che dovrebbe eliminare i record spuntati in precedenza!

il problema e' che a me quando spunto i box da me desiderati ed infine clicco su elimina mi butta sulla pagina elimina.php ma vedo la schermata bianca!

dove sto sbagliando?

Grazie

inviato 6 anni fa
giogiomogio
X 0 X

Sintatticamente sembra corretto lo script.

Hai già visionato i log di php?

Attiva la visualizzazione degli errori di php finchè sei in fase di sviluppo. Ti aiuterà a capire perchè si blocca.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

ciao

scusami giogiomogio. Cosa intendi esattamente per schermata bianca?

che ti dia una schermata bianca mi sembra normale visto che non hai echo che confermino

l'operazione effettuata.

Magari poi non ho capito io cosa esattamente intendessi.

ciao e buone feste

risposto 5 anni fa
frankphp
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda