Php 如何在wp中执行批量删除操作
我写了如下代码:Php 如何在wp中执行批量删除操作,php,mysql,wordpress,Php,Mysql,Wordpress,我写了如下代码: <?php global $wpdb; $table = $wpdb->prefix . 'submitted_form'; $randomFact = $wpdb->get_results( "SELECT * FROM " .$table); $NumRows = count((array) $randomFact); ?> <form name="delform" method="post" action=""> <table
<?php
global $wpdb;
$table = $wpdb->prefix . 'submitted_form';
$randomFact = $wpdb->get_results( "SELECT * FROM " .$table);
$NumRows = count((array) $randomFact);
?>
<form name="delform" method="post" action="">
<table>
<?php for($i=0; $i<=$NumRows-1; $i++){ ?>
<tr>
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php print $randomFact[$i]->id; ?>"> </td>
<td><?php print $randomFact[$i]->name; ?></td>
<td><?php print $randomFact[$i]->address; ?></td>
</tr>
<?php } ?>
<tr>
<td><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?php if($delete): ?>
<?php for($i=0; $i<=$NumRows-1; $i++){ ?>
<?php $id = $checkbox[$i]; ?>
<?php $wpdb->query("DELETE FROM wp_submitted_form WHERE id =".$id); ?>
<?php } ?>
<?php endif; ?>
</table>
</form>
此处更改了您需要执行的操作:
未定义变量$delete
和$checkbox
。您可以定义它们,也可以改用$\u POST变量
// test what we have here:
//echo '<pre>', print_r($_POST),'</pre>';
if (isset($_POST['delete'])):
// i dont think that you should use $NumRows here, cause user
// can check 1 or 2 checkboxes, not all of them
$size = count($_POST['checkbox']);
for ($i=0; $i<=$size-1; $i++) {
$id = $_POST['checkbox'][$i];
$wpdb->query("DELETE FROM wp_submitted_form WHERE id =".$id);
}
endif;
不要忘了检查$\u POST['checkbox'][$i]
是否真的是整数,以避免mysql注入。哪里定义了$delete
?我认为你应该使用$\u POST['delete']
。我尝试过使用$\u POST['delete'],但仍然不起作用。实际上,我正在使用本教程中的教程$delete没有正确定义可能,我认为同样应该使用$checkbox
-替换为$\u POST['checkbox']
。同时尝试回显(echo,print,var\u dump)
您的变量以查看它们的值。
for ($i=0; $i < $size; $i++)