簡體   English   中英

未從數據庫中檢索到的數據

[英]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_nameNULL ,這要么是在初始化之前進行打印,要么是在根本沒有(正確)初始化的地方對其進行了測試。 您將需要搜索的模式

$table_name =

在整個源文件夾中,並確保它在所有出現的情況下都正確初始化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM