繁体   English   中英

我的代码有什么问题? 不会从数据库中删除数据

[英]What is wrong with my code? Data is not deleted from database

我已经更新了代码,但是不断收到新的错误。 我真的希望有人能帮助我,看看我的代码,看看有什么问题。 我在网页上有一个数据库表,并且每个表行上都有一个编辑按钮和一个删除按钮。 目前,我只是想使Delete按钮起作用,即使我选择了该ID,它也不会删除数据库中的行。 看起来它正在获取正确的ID。

有人能说出什么问题吗? 下面是代码...

<?php 

    require 'connect.inc.php';

    if (isset($_POST['delete']) && isset($_POST['id'])) {
        $id = get_post('id');
        $query = "DELETE FROM movies WHERE id='.$id.' LIMIT 1";

        if (!mysql_query($query, $db_server))
            echo "DELETE failed: $query<br>".
            mysql_error() . "<br><br>";
    }

    $query = "SELECT * FROM movies, categories WHERE movies.genre_id = categories.genre_id";
    $result = mysql_query($query);

    if (!$result) die ("Database access failed:" .mysql_error()) ;
    $rows = mysql_num_rows($result);

    echo '<table><tr><th>Title</th><th>Release year</th><th>Genre</th><th>Director</th><th>Update</th><th>Delete</th></tr>';

    for ($j = 0 ; $j < $rows ; ++$j) {
    $row = mysql_fetch_row($result);
    //$id = $row[0];
    echo '<tr><td>' .$row[1] . '</td>' ;
    echo '<td>' .$row[2] . '</td>' ;
    echo '<td>' .$row[3] . '</td>' ;
    echo '<td>' .$row[4] . '</td>' ;
    echo '<td>'."<a href='edit_movie.php?edit=" . $row[0] . "'>Edit</a>".'</td>';
    echo '<td><form action="index.php" method="POST">
                <input type="hidden" name="delete" value="yes" />
                <input type="hidden" name="id" value="'. $row[0] .'" /> 
                <input type="submit" value="Delete" /></form>
                </td></tr>' ;
    }
    echo '</table>'; 

    include 'add_movie.php';

?>

您忘记关闭动作属性。

您已echo '<td><form action="index.php method="POST">更改为

echo '<td><form action="index.php" method="POST">

只是要清楚:'mysql_query'及其附带的命令已被弃用,实际上不应该使用。 但是,OP表示需要进行分配。 替换它们的最简单方法是使用“ mysqli_ *”代替。 有关使用参数绑定避免sql注入的示例: http : //www.php.net/manual/zh/mysqli-stmt.bind-param.php

不应该是:

if (isset($_POST['delete']) && isset($_POST['id'])) {
        $id = mysql_real_escape_string($_POST['id']);
        ...

有关“ get_post”的一些信息,请参见此链接: PHP:get_post有问题

问题在于,函数“ get_post”是在课程文献的下一页上定义的,直到问询者都没有注意到。

变量$ _POST ['id']包含通过HTTP POST请求从表单发送的id值。 您检查该值是否已设置,然后应像我写的那样将其分配给“ $ id”。

您的删除SQL引号错误

$query = "DELETE FROM movies WHERE id='.$id.' LIMIT 1";

更改为

$query = "DELETE FROM movies WHERE id=".$id." LIMIT 1";

要么

$query = "DELETE FROM movies WHERE id=$id LIMIT 1";

尝试更改表单操作

'<td><form action="index.php" method="POST">

还要检查您的数据库连接是否正确建立

也许这可能对get_post有帮助

PHP:get_post有问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM