簡體   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