Eliminar una fila de una tabla de base de datos usando la checkbox

Quiero mostrar un registro de una base de datos en una tabla con casillas de verificación en cada fila. Las casillas de verificación determinarán si el usuario desea eliminar esa fila específica si se verificará. Pude mostrar los datos de la base de datos, pero cuando presiono el botón Eliminar no ocurre nada. No estoy seguro, pero creo que el error está en mi eliminación de parte del código, pero podría estar equivocado. No estoy seguro. De todos modos, aquí está el código, simplemente elimino algunas líneas

<?php $link = mysql_connect("localhost","root", "123"); if(!$link) { die('Failed to connect to server: ' . mysql_error()); } $db= mysql_select_db("abc"); if(!$db) { die("Unable to select database"); } $search = $_POST['search']; $searchbox = $_POST['searchbox']; $query = ("SELECT $search FROM table where $search = '$searchbox'"); $result=mysql_query($query); if($result) { if(mysql_num_rows($result)<=0) { echo "alert('The entry does not exist'); location.href = 'admin_home.php';"; } } switch ($search) { case 'studentnumber': $result = mysql_query("SELECT * FROM table WHERE $search = '$searchbox'"); if($result){ echo ""; while($row = mysql_fetch_array($result)) { echo ""; ?>  <?php echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
Student Records
Student Number $searchbox
Delete Student Number College Course Status Last Name First Name Middle Name Address Gender Civil Status Religion Email Address Month Day Year Father's Name Father's Occupation Mother's Name Mother's Name
<input name="need_delete[]" type="checkbox" id="checkbox[]" value="">" . $row['studentnumber'] . "" . $row['college'] . "" . $row['course'] . "" . $row['status'] . "" . $row['lname'] . "" . $row['fname'] . "" . $row['mname'] . "" . $row['address'] . "" . $row['gender'] . "" . $row['civilstatus'] . "" . $row['religion'] . "" . $row['emailaddress'] . "" . $row['month'] . "" . $row['day'] . "" . $row['year'] . "" . $row['father'] . "" . $row['fatheroccupation'] . "" . $row['mother'] . "" . $row['motheroccupation'] . "
"; echo "
"; } break; default: echo "alert('An error occur'); location.href = 'admin_home.php';"; } ?> $value) { $sql = 'DELETE FROM students` WHERE id='.(int)$id; mysql_query($sql); } echo "alert('Record Successfully Deleted');location.href = 'admin_home.php';"; exit(); } mysql_close(); ?>

Gracias por adelantado !!

Puede usar valores en su checkbox y usarlos como una matriz, para que sepa cuál se ha verificado.

  

De esta manera, su $_POST['need_delete'] recibirá una matriz con sus identificadores como índice, por lo que podrá probar y eliminar esos registros.

Parece que estás intentando acceder al índice incorrecto en tu matriz $_POST . Vea lo siguiente, que se toma cerca del final de su código PHP.

 if ( ! empty($_POST['delete'])) { 

Debiera ser

 if ( ! empty($_POST['need_delete'])) { 

Hice algo similar a esto para mostrar y anexar / borrar registros. El método que utilicé fue recorrer todos los vars de publicación en el script PHP, y buscar toda la información basada en la primera parte de la clave (si coincide con algo, use el número después de eso como id de objeto). A continuación, recorra la matriz producida de los datos que se agregarán, lo que se elimina, lo que se edita y lo que se ignora.

Si el objeto ya existe tal cual y la checkbox no está configurada, ignore Si el objeto ya existe y los datos son diferentes y la checkbox no está configurada, actualice Si el objeto ya existe y la checkbox está establecida, elimine Si el objeto no lo hace existe y la checkbox no está configurada, crea una nueva fila Si el objeto no existe y la checkbox está configurada, ignora

Espero que ayude

Tener un código

Bloque de PHP:

 $mysqlData = array(); // Items to Update $mysqlNewData = array(); // Items to Create $Data = $_POST; unset($Data['stuff']); foreach($Data as $k => $v) { $type = substr($k, 0, 2); if ($type == "nw") { $type = substr($k, 2, 2); $ID = substr($k, 4); $mysqlSubData = $mysqlNewData[$ID]; if (gettype($mysqlSubData) != "array") $mysqlSubData = array(); if ($type == "sd") $mysqlSubData['startdate'] = $v; if ($type == "ed") $mysqlSubData['enddate'] = $v; if ($type == "dl") if ($v == "on") $mysqlSubData['delete'] = true; $mysqlNewData[$ID] = $mysqlSubData; } else { $ID = substr($k, 2); $mysqlSubData = $mysqlData[$ID]; if (gettype($mysqlSubData) != "array") $mysqlSubData = array(); if ($type == "sd") $mysqlSubData['startdate'] = $v; if ($type == "ed") $mysqlSubData['enddate'] = $v; if ($type == "dl") if ($v == "on") $mysqlSubData['delete'] = true; $mysqlData[$ID] = $mysqlSubData; } } 

Bloque de tabla:

 < ? $occurences = $mysql->getEntries("occurences", "`TargetID`='{$Target['ID']}'"); ?>  < ? foreach($occurences as $occurence) { ?> < ? $ID = $occurence['ID']; ?>  < ? } ?> 
Delete Start Date End Date
Pick a date Pick a date
Add Another
Cancel

Escriba una función de JavaScript cuando una checkbox en particular esté marcada o desmarcada y almacene los identificadores en una lista separada por comas como una variable oculta; luego, una vez publicada la página, puede obtener los id de los campos que desea eliminar y dividir la variable con “Explotar” para eliminar la coma