Php 单击“删除”按钮后删除单个db行
我有一个查询,当点击delete按钮时,我想从DB中删除一行。现在,它正在删除整个数据库行。但是我想通过ID删除一行 这是Php 单击“删除”按钮后删除单个db行,php,mysql,database,wordpress,Php,Mysql,Database,Wordpress,我有一个查询,当点击delete按钮时,我想从DB中删除一行。现在,它正在删除整个数据库行。但是我想通过ID删除一行 这是代码 add_action('admin_menu', 'conference_register'); function conference_register(){ add_options_page('Register Conference', 'Conference Registration', 'manage_options', 'conference-r
代码
add_action('admin_menu', 'conference_register');
function conference_register(){
add_options_page('Register Conference', 'Conference Registration', 'manage_options', 'conference-registration', 'display_conference');
}
function display_conference(){
echo "<form method='post'>";
echo "<div class='wrap'>";
echo "<h2>Conference Registration User Details</h2>";
global $wpdb;
$results = $wpdb->get_results("SELECT `id`,`email`,`details` FROM `conference_register`"); ?>
<table class="wp-list-table widefat fixed striped pages">
<thead>
<tr>
<th id="posts" class="manage-column column-posts num">ID</th>
<th id="email" class="manage-column column-email">Email</th>
<th id="description" class="manage-column column-description">Details</th>
<th id="posts" class="manage-column column-posts num">Delete</th>
</tr>
</thead>
<tbody id="the-list">
<?php foreach($results as $value){
echo "<tr>";
echo "<td class='posts column-posts'>".$value->id."</td>";
echo "<td class='email column-email'>".$value->email."</td>";
echo "<td class='description column-description'><div id='col-container'>".$value->details."</div></td>";
echo "<td class='posts column-posts'><input type='submit' name='delete_registration' value='delete'/></td>";
echo "</tr>";
if(isset($_POST['delete_registration'])){
$wpdb->delete( 'conference_register', array( 'id' => $value->id ) );
}
}
echo "</tbody></table></div></form>";
}
我有什么遗漏吗?
任何帮助都将不胜感激
p.S.我想在不使用jQuery的情况下删除一行 如果设置了
delete\u registration
,则在删除行时使用此选项。您需要为每一行设置/检查它,并删除该特定行
<?php foreach($results as $value){
echo "<tr>";
echo "<td class='posts column-posts'>".$value->id."</td>";
echo "<td class='email column-email'>".$value->email."</td>";
echo "<td class='description column-description'><div id='col-container'>".$value->details."</div></td>";
$delRow = "delete_registration_{$value->id}";
echo "<td class='posts column-posts'><input type='submit' name= $delRow value='delete'/></td>";
echo "</tr>";
if(isset($_POST[$delRow])){
$wpdb->delete( 'conference_register', array( 'id' => $value->id ) );
}
}
您没有传递id或数据库查询语法不正常请使用以下方法:
echo "<td class='posts column-posts'><input type='submit' name= 'delete_registration_{$value->id}' value='delete'/></td>";
echo "</tr>";
if(isset($_POST[delete_registration_{$value->id}])){
$wpdb->delete( 'conference_register', array( 'id' => $value->id ) );
}
echo”“;
回声“;
如果(isset($\u POST[delete\u registration\{$value->id}])){
$wpdb->delete('conference_register',数组('id'=>$value->id));
}
这应该是可行的,我是如何做到这一点的,我在每一行都有一个隐藏的输入
字段,并且有默认值=“x”。当用户更改任何字段时,我使用javascript将值更改为“e”,如果用户单击“删除”,我将值更改为“d”,并提交表单
在提交时,我使用开关
。循环浏览所有记录,如果是e-edit,d-delete。当你说整个数据库行时,你是说整个表都被删除了吗?是的,整个表现在都被删除了。等等,我来试试。现在什么都没有发生。页面刚被重新加载,但有一行未被删除。您是否为每一行设置了删除按钮?同时检查更新的答案。是。。你可以在这里看到截图。查询语法很好,只是不能删除单行。
echo "<td class='posts column-posts'><input type='submit' name= 'delete_registration_{$value->id}' value='delete'/></td>";
echo "</tr>";
if(isset($_POST[delete_registration_{$value->id}])){
$wpdb->delete( 'conference_register', array( 'id' => $value->id ) );
}