[英]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.