2009-07-28 8 views
1

この1つは、おそらく簡単です:PHP/MySQLのSELECT文

私は2つの変数があります。

$sender_id 
$receiver_id 

をこれらのIDのはtblusersでユーザに保存され、割り当てられています。私は1つずつを選択する問題はない:

しかし
$data = mysql_query("SELECT * FROM tblusers WHERE usrID='$receiverID'") or die(mysql_error()); 

while($row = mysql_fetch_array($data)) 
{ 
echo $row['usrFirstName']; 
echo $row['usrLastName']; 
} 

、私は両方のこれらのユーザーに更なる情報へのアクセスを得ることができるように私は両方の行(SENDERIDとreceiverIDに1つ)を選択するだろうか。 「SELECT内のSELECT」のような並べ替え。

ありがとうございます!

答えて

5
SELECT * FROM tblusers WHERE usrID='$receiverID' or usrID='$sender_id' 

EDIT:

select 
    'Receiver' as UserType, 
    * 
from 
    users 
where 
    usrid = $receiver_id 
union all 
select 
    'Sender' as UserType, 
    * 
from 
    users 
where 
    usrid = $sender_id 

これが返されます:

UserType | UsrID | Name 
Receiver | 23 | John Smith 
Sender | 42 | Adam Douglas 

あなたが受信している区別する必要があるとした場合の明確化

while($row = mysql_fetch_array($data)) 
{ 
    if($row['usrID'] == $receiverID) { 
     echo "Receiver: " . $row['usrFirstName'] . " " . $row['usrLastName']; 
    } else { 
     echo "Sender: " . $row['usrFirstName'] . " " . $row['usrLastName']; 
    } 

} 
+0

返信ありがとうございます。ですから、私の "while"ステートメントでは、私が$ SenderIDと$ receiverIDを区別するにはどうすればいいのですか? – Dodinas

+0

私は答えでそれを編集しました –

2

は、送信者でありますもちろん、2つの行を使用すると、いつでもそれを把握するためにIDを比較するだけです。これは主に、2つの行だけでなく、より大きな結果セットを持つ場合にスケーリングを容易にするためです。

0

SELECT * FROM tblusers WHERE usrID IN($ receiverID、sender_id)