0

PHP を SQL ステートメントで学習していますが、削除ボタンを作成しようとしたときに問題が発生しました。

問題は、「削除」ボタンを押しても何も起こらないことです。クエリは正しく機能しており、ループから正しいユーザー ID を取得しています。

<?php
        require_once 'db_connect.php';

        $select = "SELECT * FROM Users";
        $result = mysqli_query($dbc, $select) or die('could not query database');


        while ($row = mysqli_fetch_assoc($result)) {

            echo '
            <tr>
                <td>' . $row['userid'] . '</td>
                <td>' . $row['fnamn'] . ' ' . $row['enamn'] . '</td>
                <td>' . $row['username'] . '</td>
                <td>' . $row['email'] . '</td>
                    <td>' . '<form action="" method="post">
                            <input type="button" name="delete" value="Radera" />
                        </form>' . '</td>

            </tr>';

            if(isset($_POST['delete'])) {

                $userid = $row['userid'];

                $delete = "DELETE FROM Users WHERE userid = '$userid' ";
                $result = mysqli_query($dbc, $delete) or die('could not query database');
            }
        }

        mysqli_close($dbc);
        ?>
4

2 に答える 2

2

必要がある:

  1. if (isset($_POST['delete']))ステートメントをwhileループの外の前に配置します。
  2. 削除する行を知る方法があります(おそらく非表示の入力を使用)。

このようなもの:

<?php
require_once 'db_connect.php';

if(isset($_POST['delete']) && isset($_POST['user_id'])) {
    $userid = $_POST['user_id'];

    $delete = "DELETE FROM Users WHERE userid = '$userid' ";
    $result = mysqli_query($dbc, $delete) or die('could not query database');
}

$select = "SELECT * FROM Users";
$result = mysqli_query($dbc, $select) or die('could not query database');

while ($row = mysqli_fetch_assoc($result)) {
    echo '
    <tr>
        <td>' . $row['userid'] . '</td>
        <td>' . $row['fnamn'] . ' ' . $row['enamn'] . '</td>
        <td>' . $row['username'] . '</td>
        <td>' . $row['email'] . '</td>
        <td>' . '<form action="" method="post">
            <input type="hidden" name="user_id" id="user_id" value="'.$row['userid'].'" />
            <input type="submit" name="delete" id="delete" value="Radera" />
        </form>' . '</td>
    </tr>';
}

mysqli_close($dbc);
?>

$_POST['user_id']上記のようにクエリに直接挿入することはお勧めしません。準備されたステートメントについて読みたいと思うでしょう

于 2013-01-05T01:39:30.937 に答える
1

タイプを交換してください。

それ以外の:

<input type="button" name="delete" value="Radera" />

試す:

<input type="submit" name="delete" value="Radera" />
于 2013-01-05T01:28:37.047 に答える