3

テーブルから行を選択して削除するための私のphpコードは次のとおりです。

    <h1>Deleting Multiple Records using PHP &amp; MySQL</h1>
     <p>&nbsp;</p>
     <?php

これらは私のデータベース接続です:

  $host = "localhost"; // Host name
 $username = "root"; // Mysql username
 $password = ""; // Mysql password
 $db_name = "project"; // Changed database name
 $tbl_name = "users";
 mysql_connect($host, $username, $password) or die("cannot connect");
 mysql_select_db($db_name) or die("cannot select DB");
 $sql = "SELECT * FROM $tbl_name";
 $result = mysql_query($sql);
 $count = mysql_num_rows($result);
?>

データベースからデータを取得するための私のhtmlコードは次のとおりです。

   <table width="400" border="0" cellspacing="1" cellpadding="0">
  <tr><td><form name="form1" method="post" action="">
        <table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"><tr>
            <td bgcolor="#FFFFFF">&nbsp;</td>
            <td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>           </tr>
            <tr><td align="center" bgcolor="#FFFFFF">#</td>
            <td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
            <td align="center" bgcolor="#FFFFFF"><strong>First Name</strong></td>
            <td align="center" bgcolor="#FFFFFF"><strong>Last Name</strong></td>
            <td align="center" bgcolor="#FFFFFF"><strong>Gender</strong></td>
            <td align="center" bgcolor="#FFFFFF"><strong>Phone Number</strong></td>
            <td align="center" bgcolor="#FFFFFF"><strong>Experiance</strong></td>
            <td align="center" bgcolor="#FFFFFF"><strong>User Name</strong></td>
            <td align="center" bgcolor="#FFFFFF"><strong>Password</strong></td>
            </tr>
            <?php while ($rows = mysql_fetch_array($result, MYSQL_ASSOC)) { ?>

                <tr>
                <td align="center" bgcolor="#FFFFFF">
                    <input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
                <td bgcolor="#FFFFFF"><?php echo $rows['id']; ?></td>
                <td bgcolor="#FFFFFF"><?php echo $rows['fname']; ?></td>
                <td bgcolor="#FFFFFF"><?php echo $rows['lname']; ?>   </td>
                <td bgcolor="#FFFFFF"><?php echo $rows['gend']; ?>    </td>
                <td bgcolor="#FFFFFF"><?php echo $rows['phone']; ?>    </td>
                <td bgcolor="#FFFFFF"><?php echo $rows['exp']; ?>    </td>
                <td bgcolor="#FFFFFF"><?php echo $rows['uname']; ?>    </td>
                <td bgcolor="#FFFFFF"><?php echo $rows['pwd']; ?>    </td>
                </tr>
            <?php } ?>
            <tr><td colspan="5" align="center" bgcolor="#FFFFFF">
                <input name="delete" type="submit" id="delete" value="Delete" onclick="javascript:confirm('Are you sure to delete')"></td></tr>
            <?php
            if(isset($_POST['delete'])){
                $checkbox = $_POST['checkbox'];
              for($i=0;$i<count($_POST['checkbox']);$i++){
           $del_id = $checkbox[$i];
            $sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
             print $sql;
             $result = mysql_query($sql);}

               if($result){echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";}}
     mysql_close();
    ?>
    </table></form></td></tr></table>
     <p>Record count: <?php echo number_format($count) ?></p>*/

何度も試しましたが、テーブルから単一の行を削除しませんでした。ちょうど今、クエリを実行するコードを変更しました....確認してお知らせください...

4

3 に答える 3

3

このクエリは何ですか

$sql = "DEFRE FROM users WHERE id in (" . implode(",", $deleteIds) . ") ";

??

削除するには、次のようにする必要があります

$sql = "DELETE FROM users WHERE id IN (" . implode(",", $deleteIds) . ") ";
于 2013-05-08T18:03:44.480 に答える
1

コード内

if (isset($_POST['checkbox']) && count($_POST['checkbox']) > 0)
{
     $deleteIds = $_POST['checkbox'];   // it will be an array
     $sql = "DELETE FROM users WHERE id in (" . implode(",", $deleteIds) . ") ";
     // run the query
 }

「削除」しようとしている実際のコードを確認する必要があります。 いつもmysql_query($sql)は通用しない。mysql_exec()の代わりに使用する必要がありmysql_query()ます。

更新: 申し訳ありませんが、別の形式のクエリを混乱させていました。 mysql_query("delete from table where (whatever)")行セットではなく、成功した場合は true、失敗した場合は false を返しますが、機能するはずです。

于 2013-05-08T18:19:50.900 に答える