刷新页面时为什么删除最后一行

时间:2020-12-30 作者:vishal

当我刷新已删除的页表行和上次删除的查询时,请单击其他行的任何删除按钮。为什么会这样?

这是我显示的表格

                <?php
                global $wpdb;
                $table= \'wp_contact_form\';
                $result = $wpdb->get_results ( "SELECT * FROM $table" );

                if(!empty($result)){

                foreach ( $result as $print ) {  
                        
                ?>
                <tr>
                <td><?php echo $print->id;?></td>
                <td><?php echo $print->names;?></td>
                <td><?php echo $print->emails;?></td>
                <td><?php echo $print->gender;?></td>
                <td><?php echo $print->age;?></td>
                <td><input type="submit" value="Edit" id="" name="update"></td>
                <td><input type="submit" value="delete" id="delete" name="delete"></td>
                </tr>
                <?php
                }
                } 
                ?>
这是删除查询

                   $id= $print->id;
                   if(isset($_POST[\'delete\']))
                    {
                      $result = $wpdb->delete($table, array(\'id\' => $id));
                    if(!empty($result))
                       {
                        echo "success";
                       }
                    }
错误屏幕截图-https://prnt.sc/wdg3xv

1 个回复
SO网友:Chalkie

我认为出现错误的原因是您没有为其创建表单,因此foreach中使用的最后一个结果是分配$print->;id到$id。

如果你这样做了

foreach ( $result as $print ) {
    ?>
    <tr>
    <form method="POST"  action="{page url}">
    <td><?php echo $print->id; ?></td>
    <td><?php echo $print->names; ?></td>
    <td><?php echo $print->emails; ?></td>
    <td><?php echo $print->gender; ?></td>
    <td><?php echo $print->age; ?></td>
    <td><input type="submit" value="Edit" id="" name="update"></td>
    <td><input type="submit" value="delete" id="delete" name="delete"></td>
    <input type="hidden" name="id" value="<?php echo $print->id; ?>"/></form>
    </tr>
    <?php
    }
    ?>
测试时,我必须按照{page url}所述将页面url输入标记中,因为我的page函数将其设置为admin.php?page=test 所以在我的车里是这样的<form method="POST" action="?page=test">

这将创建一个带有id的额外帖子的表单。

然后delete函数如下所示

if(isset($_POST[\'delete\'])) {
    $id = $_POST[\'id\'];
    $result = $wpdb->delete($table, array(\'id\' => $id));
    if(!empty($result))
        {
            echo "success";
        }
}

相关推荐

Mysqli_error()要求参数1为mysqli,在自己的db类中给出的值为空

我创建了一个插件并在那里定义了一个短代码。这包括我自己的PHP脚本(页面)。数据位于第二个数据库中。直接mysql查询工作正常(testcode),但db。类在调试中创建警告。日志:PHP Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /usr/www/users/samtgt/2019-Wordpress/wp-content/eigeneScripte/Classes/db.class.php on l