2017-07-25 20 views
0

に参加するとのトラブル。これらの2つのテーブルは同じID(wp_users.IDおよびwp_usermeta.user_id)を持ちます。私が望むのは、wp_usersから電子メールアドレスを取得し、wp_usermetaのニックネームに参加させることだけです。WP - wp_users & wp_usermeta - 私はインターネットで答えを見つけるためにしようとしていた、と私は何かを見つけたが、私は、私はちょうど2つのテーブルを持っている</p> <p>:-)それを得ることはありません二つのテーブル

私はSQLの初心者ですし、誰かが前回の回答やコメント

<?php 
    //I just want tu print in echo all user emails connected with their nicknames from two separate tables - wp_users 
    //and wp_user_meta. I am trying to connect these tables with "ID" which has these two tables the same (inner join part) 
    $teacher_table = "SELECT wp_users.user_email, wp_usermeta.nickname 
        FROM wp_users,wp_usermeta 
        INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id"; 
    $results_table_main = $wpdb->get_results($teacher_table); 

    foreach ($teacher_table as $value){ 
     echo $value; 
    } 
    ?> 
+0

参考になっになると思います。また、あなたは、文字列の 'foreach'ループを実行しようとしている – Devon

+1

、それは' foreachの($値としてresults_table_main $) ' – WheatBeak

+0

は今、私はエラーを取得していないが、また、urghhh :-)これを何も印刷されませんエコーしていますする必要があります難しいものです:D –

答えて

1

:-)どうもありがとうございます:-)説明ならば、これは、非常に参考になる問題に役立ちますが、主

$teacher_table = "SELECT wp_users.user_email, wp_usermeta.meta_value 
FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id 
WHERE wp_usermeta.meta_key = 'nickname'"; 

そして、ちょうど良い対策tの:ここでの問題は、wp_usermeta.nickname

これはあなたが何をする必要があるかで、あなたが存在しない列を照会しているということです彼はあなたのコードの残りの部分を返します。返される変数はオブジェクトなので、そのようにアクセスする必要があります。

$results_table_main = $wpdb->get_results($teacher_table); 

foreach ($results_table_main as $value){ 
    echo $value->user_email; 
    echo $value->meta_value; 
} 
+0

プラス1を参照してください> meta_key.nickname =と、このニックネームは、このように複雑な:-( –

+0

);そのforeachのために私の答え –

+0

私の最新の編集参照:D – WheatBeak

0

間違ったクエリを使用しています。

global $wpdb; 
$sql = "SELECT u.user_email , 
     um.meta_value AS nickname 
    FROM wp_users u 
    INNER JOIN wp_usermeta um ON u.ID = um.user_id 
    WHERE um.meta_key = 'nickname'"; 

$results = $wpdb->get_results($sql); 

foreach ($results as $value){ 
    echo "EMAIL : ".$value->user_email . "<br/>"; 
    echo "NICKNAME : ".$value->nickname. "<br/>"; 
    echo '<br/>'; 
} 

は、私はあなたが二度、一度内部では、式からでカンマを使用することにより、一度の式に参加し、wp_usermeta参加しようとしている

+0

申し訳ありませんが、wp_usersの代わりに "u"という文字を入れた理由を説明できますか?そして、 "wp_usermeta"の代わりに "um"を入れます。それが私はそれがちょうどエイリアスのエイリアス –

+0

:-(私のスーパー混乱してクエリの残りの部分にテーブル名全体を書き出します。詳細については、[こちら](https://www.w3schools。com/sql/sql_alias.asp) –

+1

を使用し、なぜ、あなたはテーブルの後にあなたがしたい任意の単語や文字を使用することができ、その後、あなたが続行する必要はありませんです私のためのコードを書きやすいです – WheatBeak

関連する問題

 関連する問題