无法从数据库中删除行

时间:2015-07-26 22:59:56

标签: php html

我有一个从数据库中引入内容的表单,我希望用户能够选择一个学生并从数据库中删除它。 我收到一个错误,说明了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'>"."&nbsp;"."</th>";
                                echo"<th class='op'>"."&nbsp;"."</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 :(" ;
}
}

1 个答案:

答案 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查询时,尤其是DELETEPDO,最好是mysql_*事实上{{1}}函数已被弃用且不安全。