数据检索显示最后一组数据

时间:2017-05-12 作者:Debbie Kurth

在WordPress中,我有一个自定义表,我想在其中存储插件中使用的设置。插件管理页面的代码包含一个表单,在显示表单之前,我访问数据库并检索当前项目。

问题是,当我单击更新时,数据库将使用我输入的新项进行更新,并存储在数据库中,但当我再次访问该表时,它将显示最后一组数据。第一次就可以了。如果我点击提交按钮,第二次数据正常。

我很困惑为什么它没有显示修改后的数据。我尝试过刷新,清除缓存。不知道为什么。

基本的代码流如下

通过get\\u results()或get\\u row()从wordpress自定义表中检索数据,通过$row->XXXX或foreach($rows as$data)将数据解析为变量,检查是否设置了表单输入字段,如果设置了,请在单击提交时通过POST更新表刷新文件并转到项目1以检索数据问题是,如果我第一次点击提交按钮两次,这会起作用。然后正确显示数据。但第一次单击提交按钮时,在使用不同的数据修改输入字段后,它会将数据存储在表中,但在刷新过程中(#1),它不会检索表中的数据。它以前保存数据。我已尝试清除缓存

非常困惑。。

代码:

global $wpdb;   

$Table_Name = $wpdb->prefix.\'member_subscriptions\';

$sql_query = $wpdb->prepare("SELECT * FROM $Table_Name", 1) ;

$rows = $wpdb->get_results($sql_query, ARRAY_A);

if (!empty($rows)) 
      {
       foreach ($rows as $data) 
       {
        $mmd_pms_not_logged_in_URL =  $data[\'notloggedin_url\']  ;
      }

  <div class="wrap">
   <form method="POST">  
    Not Logged In<input type="text" size="75" name="MMD_NotLoggedIn" value="<?php echo esc_html($mmd_pms_not_logged_in_URL); ?>"/>

    <input type="submit" value="Update" class="button-primary"/>
</form>
</div>

 <?php

 if ( isset( $_POST[\'MMD_NotLoggedIn\'] ) )
      {
      $mmd_pms_not_logged_in_URL= sanitize_text_field( $_POST[\'MMD_NotLoggedIn\'] );

      $sql_query = $wpdb->prepare("UPDATE $Table_Name SET notloggedin_url=%s WHERE id=1", $mmd_pms_not_logged_in_URL) ;


      $wpdb->query( $sql_query );   
      } 
?>

1 个回复
SO网友:Eclayaz

基本流程有问题。只需将第四项放在首位,

因此,您的新订单将是:

检查表单输入字段是否已设置,如果已设置,请通过POST更新表格。单击“提交”时,通过get\\u results()或get\\u row()从wordpress自定义表格中检索数据。刷新文件并转到第1项,检索数据问题是,当按下提交按钮并刷新页面时,首先从数据库中检索数据,而不更新数据,因此由于数据库尚未更新,因此仍然会得到相同的数据集,然后更新数据库。

Simply you have to update/inset the database before anything, then you can retrieve the data from the updated database.

结束

相关推荐

Wp_List_Table not responsive

im使用wp_list_table 在我的后端主题上初始化,以显示我保存在数据库中的一些信息,但有很多信息,我想让它响应,根据屏幕大小显示/隐藏一些元素。我以为它会自动发生,就像在显示帖子的表中一样,但事实并非如此。以下是小屏幕中所有帖子的示例这是我在小屏幕上的wp\\u list\\u表我如何在没有黑客的情况下修复这个bug,wordpress core有什么解决方案吗?类似帖子谢谢