私は自分のサイトでチャットルームをプログラミングしていますが、phpは本当に初めてです。ゲームの同じチームでプレイし(ユーザーが別のチームに一緒に参加できることを知っている)、同じエリアで作業しているユーザーとチャットできるようにしたいと思います。
アカウントユーザーのテーブル、エリアのテーブル、ゲームのテーブルの3つのテーブルがあると仮定します。
次のようなクエリを返す関数があります
function myfunction($userid){
$games_user=mysql_query('select theme from games where games.userid="'.$userid.'"');
$games_theme = mysql_fetch_array($games_user);
$sql = ("select userid, username, area.userid
from account
left join area
on account.userid = area.userid
left join games
on account.userid = games.userid
where account.userid <> '".mysql_real_escape_string($userid)."' and '".(in_array(games.theme,$games_theme))."' and area.userid=1
);
return $sql;
}
再フォーマット:
$sql = "
SELECT userid, username, area.userid
FROM account
LEFT JOIN area ON account.userid = area.userid
LEFT JOIN games ON account.userid = games.userid
WHERE account.userid <> '".mysql_real_escape_string($userid)."'
AND '".(in_array(games.theme,$games_theme))."'
AND area.userid = 1
";
しかし、それは実際には機能しません。構文に問題があると思います。in_arrayがどのようにインデックス付けされているのか、そしてそのクエリをより簡単に行う方法がわかりません。
誰か助けてもらえますか?