我有一个从数据库中引入内容的表单,我希望用户能够选择一个学生并从数据库中删除它。 我收到一个错误,说明了UNDEFINED INDEX。 我是php的新手。在此先感谢您的帮助 这是我的代码
<section>
<form action="include/borrar2.php" method="post">
<center>
<?php
$sql="select * from registro";
$res=mysql_query($sql);
echo "<table border='1' class='tabla'>";
echo"<thead>";
echo"<tr>";
echo"<th class='op'>"."ID"."</th>";
echo"<th class='op'>"."Detalle"."</th>";
echo"<th class='op'>"."Costo"."</th>";
echo"<th class='op'>"." "."</th>";
echo"<th class='op'>"." "."</th>";
echo"</tr>";
echo"</thead>";
while ( $row = mysql_fetch_array($res)) {
echo "<tr>";
echo "<td name='id'>".$row['id']."</td>";
echo "<td>".$row['detalle']."</td>";
echo "<td>".$row['costo']."</td>";
echo "<td class='opcionT op' >"."<a href=''>"."<input type='submit' value='Actualizar' class='btn2'>"."</a>"."</td>";
echo "<td class='opcionT op' >"."<a href=''>"."<input type='submit' value='Eliminar' name="eliminar" class='btn2'>"."</a>"."</td>";
echo "</tr>";
}
echo "</table>";
?>
</center>
</form>
</section>
PHP
if (isset($_POST['eliminar'])) {
$idrow = $_POST['id'];
$sql="DELETE FROM `agenda` WHERE `id` = $idrow";
$res=mysql_query($sql);
if($res){
echo '<script>alert("Datos Registrados..")</script>';
echo "<script>location.href='../index.php'</script>";
}else{
echo "Error :(" ;
}
}
答案 0 :(得分:1)
您尝试通过id
元素传递td
。那不会起作用。
echo "<td name='id'>".$row['id']."</td>";
您需要将其放在表单元素中,即使该元素被隐藏。
我建议您使用GET
方法代替此方法。通过将id传递给删除php脚本:
echo "<a href='delete.php?id={$row['id']}'>Delete this Student</a>";
然后在您的php脚本中,您只需更改为使用$_GET['id']
:
if (!empty($_GET['id'])) {
$idrow = intval($_GET['id']);
$sql="DELETE FROM `agenda` WHERE `id` = $idrow";
$res=mysql_query($sql);
if($res){
echo '<script>alert("Datos Registrados..")</script>';
echo "<script>location.href='../index.php'</script>";
}else{
echo "Error :(" ;
}
}
我知道您是PHP的新手,但在运行SQL查询时,尤其是DELETE
或PDO,最好是mysql_*
事实上{{1}}函数已被弃用且不安全。