Получение данных c из базы данных - PullRequest
0 голосов
/ 06 апреля 2020

Итак, я сделал 2 страницы: страницу подписки и страницу загрузки. Пользователи могут подписаться на что-либо на странице подписки. Их выбор будет сохранен в базе данных. У каждого пользователя есть разные варианты. Эта система работает отлично. Тем не менее, я не знаю, как получить выбор пользователя из базы данных. Варианты хранятся в таблице базы данных wpex_usermeta в столбце с именем meta_value.

Пример:

enter image description here

Как видите, пользователь с user_id 3 имеет выбор 22nl. Как я могу получить пользователя его выбор (ы) из базы данных.

Мой php код:

<?php

// check connection
if ((!$conn_id) || (!$login_result)) { 
    echo "Het spijt ons, er is momenteel geen connectie met de server.";
    // echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
    exit; 
} else {
     // echo "upload is gelukt";
}

global $wpdb;

$table_name = $wpdb->prefix . 'usermeta';
// This retrieves the data from the database
$retrieve_data = $wpdb->get_results( "SELECT meta_value 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->meta_value ); ?></td>
                <th>
                    <button name="programma" type="submit" value="<?php echo esc_attr( $retrieved_data->meta_value ); ?>">Abonneer</button>
                </th>
            </tr>
        <?php } ?>
    </table>
</form>
?>
<table>
  <tr>
     <th>Programma:</th><td style="vertical-align: middle;"><?php echo "<a href='$mp3_url'>$filename</a>"; ?></td>

  </tr>
</table>

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Не запрашивать таблицу user_meta напрямую. Вместо этого используйте get_user_meta().

$choice = get_user_meta(wp_get_current_user()->ID, 'programma', true);
0 голосов
/ 06 апреля 2020

Вы должны выбрать только указанные c строки базы данных - у вас должно быть user_id:

SELECT meta_value FROM {$table_name} WHERE user_id=USER_ID_VALUE AND meta_key='programma';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...