Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 单击“删除”按钮后删除单个db行_Php_Mysql_Database_Wordpress - Fatal编程技术网

Php 单击“删除”按钮后删除单个db行

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

我有一个查询,当点击delete按钮时,我想从DB中删除一行。现在,它正在删除整个数据库行。但是我想通过ID删除一行

这是
代码

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 ) );
 }