0

通常の wp_users テーブルと sh_users テーブルがあります。

wp_users テーブルは標準のものです: ID、user_login、user_pass、user_nicename、user_email、user_url、user_registered、user_activation_key、user_status、display_name

sh_users テーブルには、id (自動インクリメント)、user_id (これは wp_users ID と一致します)、user_photo (Varchar 255)、user_gender (varchar 255) があります。

今、このようなクエリを実行すると

$results = $wpdb->get_results( "
SELECT user_login, user_email, user_photo
FROM wp_users, sh_users
WHERE wp_users.ID = sh_users.user_id
");

...そしてこれはそのクエリの var ダンプです:

string '
SELECT user_login, user_email, user_photo
FROM wp_users, sh_users
WHERE wp_users.ID = sh_users.user_id
' (length=109)

何も返されません... +エラーはまったく生成されません....だから、何が問題なのか尋ねているだけです???

- - - アップデート - - - -

これは wp-users のダンプです:

INSERT INTO `wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES 
(1, 'pete', 'xxxxxxx', 'pete', 'HIDDEN@gmail.com', '', '2013-07-02 16:42:04', '', 0, 'pete'),
(15, 'test', 'xxxxxx', 'test', 'HIDDEN@gmail.com', '', '2013-07-15 11:17:01', '', 0, 'test'),
(16, 'test1', 'xxxxx', 'test1', 'b.HIDDEN@gmail.com', '', '2013-07-15 20:05:32', '', 0, 'test1'),
(17, 'test5', 'xxxxxx', 'test5', 'HIDDEN.pe@gmail.com', '', '2013-07-16 09:48:57', '', 0, 'test5'),
(23, 'ban', 'xxxxx', 'ban', 'HIDDEN4@gmail.com', '', '2013-07-24 23:24:31', '', 0, 'bane'),
(24, 'ban2', 'xxxx', 'ban2', 'HIDDEN.HIDDEN@gmail.com', '', '2013-07-31 17:41:46', '', 0, 'ban2');

sh_users の Mysql ダンプ:

---- Dumping data for table `sh_users`--
INSERT INTO `sh_users` (`id`, `user_id`, `user_registered`, `user_active`, `user_location`, `user_gender`, `user_photo`, `user_meet`, `user_text`, `user_subscribed`) VALUES 
(5, 15, '1373894222', 'Y', '', '', '17-profile.jpg', '', '', ''), 
(6, 16, '1373925933', 'Y', '', '', '17-profile.jpg', '', '', ''), 
(7, 17, '1373975337', 'Y', 'Midtjylland', 'Hende', '17-profile.jpg', 'Nej', '', 'Y'), 
(13, 23, '1375298672', 'N', 'Midtjylland', 'Hende', '23-profile.jpg', 'Nej', '', 'Y'), 
(14, 24, '1375299707', 'N', '', '', 'no-image.png', '', '', '');
4

2 に答える 2

1

結果を選択するテーブルをクエリに伝える必要があります-

$results = $wpdb->get_results( "
    SELECT wp_users.user_login, wp_users.user_email, sh_users.user_photo
    FROM wp_users, sh_users
    WHERE wp_users.ID = sh_users.user_id
");

user_photoこれは、テーブルからのみ必要であると想定してsh_usersいるため、それが正しくない場合は変更してください。

また、トラブルシューティングのために、$wpdb グローバルにはいくつかの便利なクラス変数があります。クエリを実行した直後に、次のコードを追加します -

echo '<pre>Last query: '; print_r($wpdb->last_query); echo '</pre>';
echo '<pre>Last error: '; print_r($wpdb->last_error); echo '</pre>';
echo '<pre>Last result: '; print_r($wpdb->last_result); echo '</pre>';

何かを返す場合$wpdb->last_errorは、問題を特定するのに役立つことを願っています。

于 2013-08-01T10:59:28.113 に答える
0

あなたのクエリは正しくありません。2 つのテーブルがあります。

  1. wp_users
  2. sh_users

これら 2 つをリンクするには、それらに参加する必要があります。次のことを試してください。

    $results = $wpdb->get_results( "
     SELECT user_login, user_email, user_photo
     FROM wp_users
     JOIN sh_user 
     ON wp_users.ID = sh_users.user_id
    ");

この後、 a またはをorなどWHEREに置き換えることができます。JOINLEFT JOINRIGHT JOIN

于 2013-08-01T09:48:04.517 に答える