我有一个返回朋友列表的函数,唯一的问题是我想从wallfriends.mem_id_from或wallfriends.mem_id_to进行数组推送,具体取决于哪个不是$ user_id。
要么
我可以用SQL完成所有操作吗?
有谁知道我会怎么做呢?在此先感谢您的帮助。
function returnFreinds($user_id)
{
$recget = mysql_query("
SELECT * FROM wallusers
INNER JOIN wallfriends ON wallusers.mem_id = ".( $user_id == "wallfriends.mem_id_to"?"wallfriends.mem_id_from":"wallfriends.mem_id_to")."
WHERE ((wallfriends.mem_id_from =".$user_id.") OR (wallfriends.mem_id_to =".$user_id.")) AND wallfriends.confirm=1
");
$friends_list = array();
if (@mysql_num_rows($recget))
{
while ($named = @mysql_fetch_array($recget))
{
array_push($friends_list, $named['mem_id']);
}
$matches = implode(',', $friends_list);
}
else
$matches = 0;
return $matches;
}
最佳答案
根据我对您的问题的理解,您可以像构造SQL查询时一样使用push
进行区分。
while ($named = mysql_fetch_array($recget))
{
array_push($friends_list,
empty($named['mem_id_to']) ? $named['mem_id_from'] : $named['mem_id_to']
);
}
另外,建议不要使用
@
运算符抑制错误。