PHP / MySQL Select Bildirimi

3 Cevap php

Bu bir olasılıkla kolay:

Ben iki değişken vardır:

$sender_id
$receiver_id

Bu kimlikleri saklı ve tblUsers bir kullanıcıya atanır. Ben bir-at-a-zaman seçilmesinde herhangi bir sorun var:

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

Ben hem bu kullanıcılar hakkında daha fazla bilgi için erişebilir böylece Ancak, ne ben, hem de satır (SenderID ve receiverID için) seçmek olacaktır. Tür bir "SELECT içinde SEÇ" gibi.

Teşekkürler!

3 Cevap

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

EDIT: açıklama

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

}

Eğer alıcı ve hangisinin hangisi olduğunu ayırt etmek gerekiyorsa gönderen:

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

Bu dönecektir:

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

Tabii ki, iki satır ile, her zaman sadece çok, bunu anlamaya kimlikleri karşılaştırabilirsiniz. Bu, sadece iki satır daha büyük bir sonuç kümesi varsa ölçekleme kolaylaştırmak için esas olan.

SEÇİN * tblUsers WHERE usrID IN ($ receiverID, sender_id)