DELETE cu checkbox

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
cipriand
Mesaje:18

DELETE cu checkbox

AM urmatorul cod si bifez sa stearga din baza de date dar ... cand dau delete e ca si cum nimic nu s-ar fi intamplat nu-mi dau seama ce greseala e :

Cod: Selectaţi tot

<?php
$host="localhost"; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name=""; // Database name 
$tbl_name="anunt"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name ORDER by id desc LIMIT 10";
$result=mysql_query($sql);
$count=mysql_num_rows($result);

?>
<table width="800" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="800" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Titlu</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Ip</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['titlu']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['email']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['ip']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this 
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM anunt WHERE id='$del_id'";
$result = mysql_query($sql);
}

// if successful redirect to delete_multiple.php 
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=delete_multiple.php\">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>

MarPlo Mesaje:4343
Cand se da Delete, valoarea campurilor din formular, deci si din checkbox-ul bifat, sunt transmise prin POST la PHP impreuna cu numele de la "name", si trebuie preluata cu $_POST['nume_input'].
La ce ai in cod, ar veni:

Cod: Selectaţi tot

if(isset($_POST['delete'])) {
  for($i=0; $i<count($_POST['checkbox']); $i++) {
    $del_id = $_POST['checkbox'][$i];
    $sql = "DELETE FROM anunt WHERE id='$del_id'";
    $result = mysql_query($sql);
  }
}