サポート » 使い方全般 » 同じデータベース内の別のWordPressのデータを取得する方法

  • llgenkunll

    (@llgenkunll)


    はじめまして。

    タイトル通り、同じデータベース内の別のWordpressのデータを取得して表示しようとしています。
    取得したいデータは usermeta の中にあるカスタム投稿データです。
    データを1つだけ取得するのは出来たのですが、複数取得しようとすると消えてしまいます。

    どうすれば複数の取得をできるのか、ご教授願えませんでしょうか。
    よろしくお願いします。

    下記が現在書いているコードです。

    ▼ 1つだけなら表示される
    global $wpdb;
    $db_name = $wpdb->dbname;
    $db_user = $wpdb->dbuser;
    $db_passwd = $wpdb->dbpassword;
    $db_host = $wpdb->dbhost;
    $another_wpdb = new wpdb($db_user, $db_passwd, $db_name, $db_host);
    $table_prefix = ‘wp2_’;
    $another_wpdb->set_prefix($table_prefix);
    ?>
    <table><tbody>
    <th>リスト1</th>
    <?php
    $users = $another_wpdb->get_results(“
    SELECT
    $another_wpdb->users.ID,
    hoge1.meta_value AS hoge1
    FROM $another_wpdb->users
    INNER JOIN $another_wpdb->usermeta AS hoge1 ON $another_wpdb->users.ID = hoge1.user_id AND ‘hoge1’ = hoge1.meta_key
    WHERE user_id!=1
    ORDER BY ID
    “);

    foreach ($users as $value) {
    print(‘<tr>
    <td>’.$value->hoge1.'</td>
    </tr>’);
    };

    ▼ 2つ以上になると全て消えてしまう
    global $wpdb;
    $db_name = $wpdb->dbname;
    $db_user = $wpdb->dbuser;
    $db_passwd = $wpdb->dbpassword;
    $db_host = $wpdb->dbhost;
    $another_wpdb = new wpdb($db_user, $db_passwd, $db_name, $db_host);
    $table_prefix = ‘wp2_’;
    $another_wpdb->set_prefix($table_prefix);
    ?>
    <table><tbody>
    <th>リスト1</th>
    <th>リスト2</th>
    <th>リスト3</th>
    <?php
    $users = $another_wpdb->get_results(“
    SELECT
    $another_wpdb->users.ID,
    hoge1.meta_value AS hoge1,
    hoge2.meta_value AS hoge2,
    hoge3.meta_value AS hoge3
    FROM $another_wpdb->users
    INNER JOIN $another_wpdb->usermeta AS hoge1 ON $another_wpdb->users.ID = hoge1.user_id AND ‘hoge1’ = hoge1.meta_key
    INNER JOIN $another_wpdb->usermeta AS hoge2 ON $another_wpdb->users.ID = hoge2.user_id AND ‘hoge2’ = hoge2.meta_key
    INNER JOIN $another_wpdb->usermeta AS hoge3 ON $another_wpdb->users.ID = hoge3.user_id AND ‘hoge3’ = hoge3.meta_key
    WHERE user_id!=1
    ORDER BY ID
    “);

    foreach ($users as $value) {
    print(‘<tr>
    <td>’.$value->hoge1.'</td>
    <td>’.$value->hoge2.'</td>
    <td>’.$value->hoge3.'</td>
    </tr>’);
    };

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • x743

    (@x743)

    WHERE user_id!=1

    この箇所を

    WHERE ID != 1

    とかにすればいいかと思います。
    wpdbにはエラー表示用の関数もあったはずなので、参考になるかもしれません。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「同じデータベース内の別のWordPressのデータを取得する方法」には新たに返信することはできません。