从WordPress数据自定义表中获取结果

时间:2014-11-17 作者:Vasilis

首先,我在wpdb中创建了一个自定义表:

  global $wpdb;
  $table_name = $wpdb->prefix . \'countdown_table\';

  $sql = \'
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `styleName` varchar(255) NOT NULL,
  `css` blob NOT NULL,
  `expiration` blob NOT NULL,
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
  \';

  require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
  dbDelta( $sql );
然后,我创建了一个表单,将值发送到自定义表中:

<p>Style Name</p>   

<form action="" method="POST">

<input type="text" name="style_name">
<input type="submit" name="submit">

</form>

if (isset($_POST[\'style_name\'])) {

$style_name = $_POST[\'style_name\'];

 global $wpdb;

    $wpdb->insert( 
        \'countdown_table\', 
        array( 
            \'styleName\' => $style_name 
        ), 
        array( 

            \'%s\' 
        ) 
    );

}
下面是从表中获取结果的问题:

 global $wpdb;

    $output = \'\';

    $table_name = $wpdb->prefix . \'countdown_table\';

    $name = \'styleName\';

    $results = $wpdb->get_results( $wpdb->prepare(\'SELECT * FROM \'.$table_name ) );

    if ( $results ) {
       foreach ( $results as $result ){
       echo $result[0];
    }
问题是我无法显示保存的数据,或者我是否在创建表或插入数据的代码中出错

1 个回复
SO网友:theres.yer.problem

您的问题似乎与以下代码有关:

if ( $results ) {
    foreach ( $results as $result ){
       echo $result[0];
    }
}
echo $result[0]; 应该是echo $result;.

$results 您的阵列是否可以使用$results[0] (注意s)您需要一个for循环,而不是foreach循环。

if ( $results ) {

    $arrLen = count($results);

    for ($i = 0; $i < $arrLen; $i++ ){
       echo $result[$i];
    }
}
如果您想使用$结果[n]目标,则是您想要的。

结束

相关推荐

$wpdb->get_var在一个数据库检查中执行多个查询

我正在使用$wpdb->get\\u var php代码在wp\\u usermeta表中获取记录的名字和姓氏。。。但由于字段值存储在同一个单元格中,我不知道如何将其合并为一个字符串。现在我是这样做的:$_EmployeeFName = $wpdb->get_var( $wpdb->prepare(\"SELECT `meta_value` FROM `wp_usermeta` WHERE `meta_key` = \'first_name\' and `user_id` = %d \"