[英]Data not retrieved from database
我有这段代码:
<?php
global $wpdb;
$table_name = $wpdb->prefix . 'wpex_programma';
// This retrieves the data from the database
$retrieve_data = $wpdb->get_results( "SELECT Anaam FROM {$table_name}" );
?>
<form action="#" enctype="multipart/form-data" method="post">
<?php wp_nonce_field( 'set_programma_action', 'set_programma' ); ?>
<table>
<?php foreach ( $retrieve_data as $retrieved_data ) { ?>
<tr>
<th>Programma:</th>
<td style="vertical-align: middle;"><?php echo esc_html( $retrieved_data->Anaam ); ?></td>
<th>
<button name="programma" type="submit" value="<?php echo esc_attr( $retrieved_data->Anaam ); ?>">Abonneer</button>
</th>
</tr>
<?php } ?>
</table>
</form>
<?php
// Verify nonce and safe the data if the user is logged in.
// Nonce docs: https://developer.wordpress.org/themes/theme-security/using-nonces/
if (isset( $_POST['programma'] ) && isset( $_POST['set_programma'] ) && wp_verify_nonce( $_POST['set_programma'], 'set_programma_action' )) {
$data = filter_input( INPUT_POST, 'programma', FILTER_SANITIZE_STRING );
$current_user_id = get_current_user_id();
if ( $current_user_id && ! empty( $data ) ) {
update_user_meta( $current_user_id, 'programma', $data );
}
}
?>
该页面不从数据库返回数据。 除了我的导航栏和页脚外,没有显示任何内容。 我怎么解决这个问题?
检索数据并显示的代码是:
global $wpdb;
$table_name = $wpdb->prefix . 'wpex_programma';
// Dit haalt de data op uit de database
$retrieve_data = $wpdb->get_results( "SELECT Anaam FROM {$table_name}" );
?>
<form action="#" enctype="multipart/form-data" method="post">
<?php wp_nonce_field( 'set_programma_action', 'set_programma' ); ?>
<table>
<?php foreach ( $retrieve_data as $retrieved_data ) { ?>
<tr>
<th>Programma:</th>
<td style="vertical-align: middle;"><?php echo esc_html( $retrieved_data->Anaam ); ?></td>
<th>
<button name="programma" type="submit" value="<?php echo esc_attr( $retrieved_data->Anaam ); ?>">Abonneer</button>
</th>
</tr>
<?php } ?>
</table>
</form>
我还将展示我的数据库结构:
我的 wpex_usermeta,选择必须保存在这里:
我的 wpex_programma。 所有程序都保存在这里:
编辑
echo var_dump($wpdb->prefix);
产量
字符串(5)“wpex_”
我也做了 echo var_dump($tablename);
它显示为NULL
在 phpmyadmin 中,您可以测试您的查询。 如果您的查询有问题,您将不会得到结果。
因此,转到 phpmyadmin 并打开您的表,然后单击 sql 选项卡并测试您的查询,直到获得结果。
看到问题和评论区,信息似乎自相矛盾。
如果
echo var_dump($wpdb->prefix);
产量
字符串(5)“wpex_”
这意味着由于
$table_name = $wpdb->prefix . 'wpex_programma';
$table_name
的值为
wpex_wpex_programma
这与预期的表名不同,即
wpex_programma
所以,将代码更改为
$table_name = $wpdb->prefix . 'programma';
应该可以解决问题。 注意代码重复,您在不同的地方定义了$table_name
,因此您需要在任何地方应用更改。
您还声称$table_name
是NULL
,这要么是在初始化之前进行打印,要么是在根本没有(正确)初始化的地方对其进行了测试。 您将需要搜索的模式
$table_name =
在整个源文件夹中,并确保它在所有出现的情况下都正确初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.