Ben (feryat listelenen) 4 Tablolar ve gerekir:
- Yasaklı kullanıcıların olmadan Room 3 son 10 Sohbetleri olsun
- fromuserid için takma göstermek
- HIDE Kullanıcılar $ kimliği masa "GİZLE" görmek sevmiyorum
Tablo 1 "sohbetler"
ID(autoinc) fromuserid roomid text
1 23 3 bla
2 14 1 bla
3 11 3 bal
Tablo 2 "kullanıcı" / kısa /
ID(autoinc) nickname banned
1 chris 0
2 paul 1 // 1 = banned
Tablo 3 "gizlemek"
ID(autoinc) orguser hideuser
1 12 3
2 33 12
Sağ şimdi ben PHP Rutin ile çözüldü, ama ben HER sonucu geçmesi ve çok uzun ihtiyacı her zaman yeni bir sorgu, yapmak zorunda;
$userid = 1; // actual user
// List all chats and show userid as nickname
$sql_com = "SELECT user.id, user.nickname, chats.text, chats.id ".
" FROM chats, user".
" WHERE ".
" chats.fromuserid = user.id ".
" AND chats.roomid = 3 ".
" AND user.banned != 1 ".
" ORDER BY chats.id DESC";
$result = mysql_query ($sql_com);
$count = 0;
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$dontshow = false;
// Filter : dont show users $userid dont like to see (table "hide")
$sql_com2 = "SELECT id from hide WHERE ( (orguser = ".$userid.") AND (hideuser = ".$row[0].") ) ";
if ($result2 = mysql_query ($sql_com2))
{
if (mysql_num_rows($result2) > 0) $dontshow = true;
}
// Output
if ($dontshow == false)
{
$count++;
echo "Nickname: ".$row[1]." Text: ".$row[2];
}
if ($count > 10) break;
}
Btw. Ben zaten bazı improvments yapılmış, bu yüzden asıl soru (kadar şimdi yardım için teşekkürler) tüm cevapları ile uymayabilir
Nihayet onun artık "benim gerçek kullanıcı için" filtre "tabloda gösteri insanları yok" gizlemek entegre üzereydim.