2009-07-28 18 views
1

Dieser ist wahrscheinlich einfach:PHP/MySQL Select Statement

Ich habe zwei Variablen:

$sender_id 
$receiver_id 

Diese IDs gespeichert werden und in tblUsers einem Benutzer zugewiesen. Ich habe kein Problem ein-at-a-time Auswahl:

$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']; 
} 

Doch wie würde ich beiden Reihen (einen für SenderID und ReceiverId) wählen, so dass ich den Zugang zu weiteren Informationen zu diesen beiden Benutzern gewinnen. So ähnlich wie ein "SELECT in einem SELECT".

Danke!

Antwort

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

EDIT: Klarstellung

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

} 
+0

Danke für die Antwort. Also, wie würde ich in meiner "while" -Aussage zwischen $ senderID und $ receiverID unterscheiden, wenn ich mich auf eine spezifisch beziehen wollte. – Dodinas

+0

Ich habe es mit der Antwort bearbeitet –

2

Wenn Sie zu differenzieren müssen, welche der Empfänger ist und welcher der Absender:

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

Dies wird zurück:

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

Natürlich kann man mit zwei Reihen immer Vergleichen Sie einfach die IDs, um das herauszufinden. Dies dient hauptsächlich dazu, die Skalierung zu vereinfachen, wenn Sie ein größeres Ergebnisset als nur zwei Zeilen haben.

0

SELECT * FROM tblusers WHERE usrID IN ($ empfängerID, sender_id)