sql >> データベース >  >> RDS >> Mysql

チェックボックスを使用してデータベースエントリを削除する

    ここでは、 mysqli_を使用してテストおよび動作しています mysql_の代わりに

    自分の資格情報に置き換えてください。

    コメントで述べたように、チェックボックスには名前付き要素を角かっこで囲む必要がありました。つまり、 name ='checkbox []' そうしないと、無効な foreachを受け取ります。 引数エラー。

    補足:少しフォーマットを行うことはできますが、機能します。

    <table class="ts">
            <tr>
                <th class="tg-031e" style='width:1px'>ID</th> 
                <th class="tg-031e">IP address</th>
                <th class="tg-031e">Date added</th>
                <th class="tg-031e">Reason</th>
            </tr>
    
    <?php
    
    $DB_HOST = "xxx";
    $DB_NAME = "xxx";
    $DB_USER = "xxx";
    $DB_PASS = "xxx";
    
    $con = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
    if($con->connect_errno > 0) {
      die('Connection failed [' . $con->connect_error . ']');
    }
    
    $SQL = "SELECT `ID`, `IPaddress`, `DateAdded`, `Reason` FROM `banned`";
    $exec = mysqli_query($con,$SQL);
    
    echo "<form method='post'>";
    
            while ($row = mysqli_fetch_array($exec)){
                    echo "<tr class='tg-031h'>";
                    echo "<td class='tg-031e'><input type='checkbox' name='checkbox[]' value='" . $row[ID] . "'></td>";
    
                    echo "<td class='tg-031e'>" . $row['IPaddress'] . "</td>";
                    echo "<td class='tg-031e'>" . $row['DateAdded'] . "</td>";
                    echo "<td class='tg-031e'>" . $row['Reason'] . "</td>";
            }
    
    echo "</tr></table>"; 
    
            echo "<input name='delete' type='submit' value='Delete'></form>";
    
            if (isset($_POST['delete']) && isset($_POST['checkbox'])) {
                foreach($_POST['checkbox'] as $id){
                    $id = (int)$id;
    
                    $delete = "DELETE FROM banned WHERE ID = $id"; 
                    mysqli_query($con,$delete);
                }
            }
    
    ?>
    

    mysqli_ *> プリペアドステートメント付き 、または PDO 準備されたステートメント このために。

    編集: mysql _ バージョン

    <table class="ts">
            <tr>
                <th class="tg-031e" style='width:1px'>ID</th> 
                <th class="tg-031e">IP address</th>
                <th class="tg-031e">Date added</th>
                <th class="tg-031e">Reason</th>
            </tr>
    
    <?php
    
    include 'connect.php';
    
    $SQL = "SELECT `ID`, `IPaddress`, `DateAdded`, `Reason` FROM `banned`";
    $exec = mysql_query($SQL, $connection);
    
    echo "<form method='post'>";
    
            while ($row = mysql_fetch_array($exec)){
                    echo "<tr class='tg-031h'>";
                    echo "<td class='tg-031e'><input type='checkbox' name='checkbox[]' value='" . $row[ID] . "'></td>";
    
                    echo "<td class='tg-031e'>" . $row['IPaddress'] . "</td>";
                    echo "<td class='tg-031e'>" . $row['DateAdded'] . "</td>";
                    echo "<td class='tg-031e'>" . $row['Reason'] . "</td>";
            }
    
    echo "</tr></table>"; 
    
            echo "<input name='delete' type='submit' value='Delete'></form>";
    
            if (isset($_POST['delete']) && isset($_POST['checkbox'])) {
                foreach($_POST['checkbox'] as $id){
                    $id = (int)$id;
    
                    $delete = "DELETE FROM banned WHERE ID = $id"; 
                    mysql_query($delete);
                }
            }
    
    ?>
    


    1. CentOS 7 /RHEL7にMariaDBをインストールする方法

    2. SQLServerのテーブル値関数を介してデータを選択する

    3. MySQLクエリで正規表現する方法

    4. クロステーブルインデックスは可能ですか?