Php 如何在foreach循环中打印选定行后仅从DB中删除这些行

Php 如何在foreach循环中打印选定行后仅从DB中删除这些行,php,mysql,Php,Mysql,我想知道如何从使用foreach循环打印的数据库中删除选中(带有复选框)行。 现在我只有这个: if(isset($_POST['submitS1'])) { $myads = $wpdb->get_results( "SELECT * FROM ads ORDER BY id DESC"); foreach ($myads as $pointer2) { $id_ad = $pointer2->id; $

我想知道如何从使用foreach循环打印的数据库中删除选中(带有复选框)行。 现在我只有这个:

 if(isset($_POST['submitS1'])) {
        $myads = $wpdb->get_results( "SELECT * FROM ads ORDER BY id DESC");
        foreach ($myads as $pointer2) {
            $id_ad = $pointer2->id;
          $title = $pointer2->title;
          $text1 = $pointer2->text1;
          $nme = $pointer2->name;
          echo '<br><h2>Message:</h2>'.$text1.'';
          echo '<br><h2>Title:</h2>'.$title.'<br>';
          echo '<br><h2>Name:</h2>'.$name.'<br>';
         echo ' <form method="post"><input type="checkbox" name="accept" value="accepto">Delete this ad<br>
        </form>';


        }
 echo '<form method="post">
    <input type="submit" name="submito" value="Delete selected ads">
        </form>';
        if(isset($_POST['submito'], $_POST['accept'])) {
        $sql2 ="DELETE FROM `mydb`.`ads` WHERE `ads`.`id` = ".$id_ad."";
        $wpdb->query($sql2);
        }

        }
if(isset($\u POST['submitS1'])){
$myads=$wpdb->get_results(“按id DESC从ads订单中选择*);
foreach($myads作为$pointer2){
$id_ad=$pointer2->id;
$title=$pointer2->title;
$text1=$pointer2->text1;
$nme=$pointer2->name;
回显“
消息:”.$text1“; 回显“
标题:”.$Title.“
”; 回显“
名称:”.$Name.“
”; echo'删除此广告
'; } 回声' '; 如果(isset($发布['submito'],$发布['accept'])){ $sql2=“从`mydb`.`ads`删除,其中`ads`.`id`=”$id\u ad.”; $wpdb->query($sql2); } }
只使用一个表单

将复选框名称设置为“删除\u id[$id]”


就这么简单。

您有一个超出范围的问题;使用一个表单,而不是两个表单,为所述行使用隐藏输入。另外,您需要将这些复选框用作数组
<input type="checkbox" name="delete_ids[<?php echo $id;?>]" />
$ids = array_keys( $_POST["delete_ids"] );
if(count( $ids ))
{
    var_dump( $ids );
    $ids = implode( ",", array_map( intval, $ids ));
    $sql = "DELETE FROM... WHERE id IN ($ids)";
    .....