2017-08-21 19 views
-1

1つのMySQLテーブルからデータを選択し、クエリのIDを照合して2番目のテーブルから電子メールアドレスを取得する必要があります。その後、結果を出力します。私の現在のコードは次のとおりです。同じステートメントの2つのMySQLテーブルから選択してください

$sql = "SELECT fk_i_user_id, i_amount FROM osei_t_payment_pro_wallet 
     WHERE i_amount > 0 order by i_amount DESC"; 

$rows = mysqli_query($conn, $sql); 

while ($rs = mysqli_fetch_array($rows, MYSQLI_ASSOC)){ 
    $uid = $rs["fk_i_user_id"]; 
    $cash = $rs["i_amount"]/1000000; 
    echo "User ID - ".$uid." Wallet Val - ".$cash.chr(10).chr(13); 
} 

私はこのクエリに組み込むしたいと思います:

"SELECT s_email FROM osei_t_user where pk_i_id =".$uid; 

と出力結果:

echo "User ID - ".$uid." Wallet Val - ".$cash." - Email: ".(value from above query).chr(10).chr(13); 

答えて

0

あなたが参加を使用することができます。

SELECT fk_i_user_id,i_amount, s_email 
FROM osei_t_payment_pro_wallet 
LEFT OUTER JOIN osei_t_user ON pk_i_id=fk_i_user_id 
WHERE i_amount > 0 order by i_amount DESC 

外部結合は、ON句に一致するレコードを選択するが、親テーブルに該当するレコード(osei_t_payment_pro_walletが存在しない場合、これらのフィールドはnullになります。第二のテーブルのレコードが存在しないかもしれない場合は外部結合を使用してください)。私はこれを書くでしょうけれども

$email = $rs["s_email"]; 
echo "User ID - ".$uid." Wallet Val - ".$cash." Email -".$email.chr(10).chr(13); 

は(OP)からの出力を更新しました

echo "User ID - {$uid} Wallet Val - {$cash} Email - {$email}\n\r"; 

あなたはまた、直接の結果を使用することができます。

echo "User ID - {$rs["fk_i_user_id"]} Wallet Val - {$cash} Email - {$rs["s_email"]}\n\r"; 

$cashまだする必要があります計算される。

+0

追加:$ email = $ rs ["s_email"]; echo "ユーザーID - "。$ uid。 "Wallet Val - "。$現金 "電子メール - "。$ email.chr(10).chr(13); $電子メールはnullに戻り続けます。 – Sudo

+0

コードに問題がない - 2つのテーブルの間のキーが一致していますか? – RichGoldMD

+0

申し訳ありませんが、私の最後にエラーがあった....カットアンドペーストの失敗:)ありがとう、完璧に動作! – Sudo

関連する問題