以下の私のクエリをご覧ください。現在、system_id = '$sid' の連絡先から system_id を探していますが、system_id = '$sid' の連絡先からの friend_id も検索するクエリが必要です
$tre = mysql_query("SELECT System_id, Full_name FROM accounts
WHERE Full_name LIKE '". mysql_real_escape_string($_GET['q'])."%' LIMIT 5");
while($re=mysql_fetch_array($tre))
{
$qry=mysql_query("SELECT System_id FROM contacts WHERE
System_id='". $sid ."' AND Friend_id='". $re['System_id'] ."'");
if(mysql_num_rows($qry)>0){
if($sid!=$re['user_id']){
$obx['id']=$re['System_id'];
$obx['name']=$re['Full_name'];
$arr[]=$obx;
}
}
どうすれば微調整できますか?
ありがとう!
アップデート:
以下のコメントのいくつかを調べたところ、期待どおりに機能するこのクエリを構築しました。
SELECT DISTINCT contacts.friend_id, accounts.full_name,
accounts.system_id
FROM contacts, accounts
WHERE (contacts.system_id = '$sid' AND contacts.friend_id
= accounts.system_id) OR (contacts.friend_id = '$sid'
AND contacts.system_id = accounts.system_id)
唯一の問題は、これから SELECT クエリを変更する方法です。
$tre = mysql_query("SELECT System_id, Full_name FROM accounts
WHERE Full_name LIKE '". mysql_real_escape_string($_GET['q'])."%' LIMIT 5");
$tre へ:
SELECT DISTINCT contacts.friend_id, accounts.full_name,
accounts.system_id
FROM contacts, accounts
WHERE (contacts.system_id = '$sid' AND contacts.friend_id
= accounts.system_id) OR (contacts.friend_id = '$sid'
AND contacts.system_id = accounts.system_id)