Hi,
I have a problem to delete data from mysql database using checkbox.
This the error appear in my page and the data cannot delete.

<?php
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="mentormentee"; // Database name 
$tbl_name="appointment"; // 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";
$result=mysql_query($sql);

$count=mysql_num_rows($result);
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="8" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF"> </td>
<td colspan="8" bgcolor="#FFFFFF"><strong>Appointment</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>Student Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Student ID</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Programme</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Phone</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Mentor Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Date</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Time</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['app_ID']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['student_name']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['student_ID']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['programme']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['phone']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['mentor_name']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['date']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['time']; ?></td>
</tr>

<?php
}
?>

<tr>
<td colspan="9" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>

<?php

// Check if delete button active, start this
if($_POST['delete']){
for($i=0;$i<count($_POST['checkbox']);$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name 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>

It should be:

$del_id = $_POST['checkbox'][$i];
// Check if delete button active, start this
if($_POST['delete']){
for($i=0;$i<count($_POST['checkbox']);$i++){
$checkbox = $_POST['checkbox']
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}
// if successful redirect to delete_multiple.php 

OR this way better

// Check if delete button active, start this
if($_POST['delete']){
$checkbox = $_POST['checkbox']
for($i=0;$i<count($_POST['checkbox']);$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}
// if successful redirect to delete_multiple.php

Or you can do it in one query (provided that $_POST['checkbox'] contains IDs to delete):

// if delete was clicked and some checkboxes were checked
if(
    isset($_POST['delete']) && 
    isset($_POST['checkbox']) && 
    !empty($_POST['checkbox'])
){
    // string of IDs to be deleted (separated by ,)
    $id_list = implode(',', $_POST['checkbox']);

    $sql = "DELETE FROM $tbl_name WHERE id IN ($id_list)'";
    $result = mysql_query($sql);
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.