0

我目前有一个名为 [friends] 的表,它用于行等。

+------------------------------------------------friend_id | 朋友一个 | 朋友二 | 角色----------------------------------------------+ +--- -------------------------------------------------- -------------------------------------------------- -------------------------------------+

这是一个关注和取消关注系统,但它不是很好。

对于“添加和删除”朋友,我想知道如何提高效率,以便更轻松地读取数据库,并且更可靠。

// Add Friend
public function Add_Friend($uid,$fid){
    $fid            = mysql_real_escape_string($fid);
    $q          = mysql_query("SELECT friend_id FROM friends WHERE friend_one='$uid' AND friend_two='$fid' AND role='fri'");

    if(mysql_num_rows($q) ==0 ){
        $query      = mysql_query("INSERT INTO friends(friend_one,friend_two,role) VALUES ('$uid','$fid','fri')") or die(mysql_error());    
        $query      = mysql_query("UPDATE users SET friend_count=friend_count+1 WHERE uid='$uid'") or die(mysql_error());   
        return true;
    }
}

// Remove Friend
public function Remove_Friend($uid,$fid){
    $fid            = mysql_real_escape_string($fid);
    $q          = mysql_query("SELECT friend_id FROM friends WHERE friend_one='$uid' AND friend_two='$fid' AND role='fri'");

    if(mysql_num_rows($q) == 1){
        $query      = mysql_query("DELETE FROM friends WHERE friend_one='$uid' AND friend_two='$fid'") or die(mysql_error());
        $query      = mysql_query("UPDATE users SET friend_count=friend_count-1 WHERE uid='$uid'") or die(mysql_error());   
        return true;
    }

}

一切正常,我只想知道如何让它变得更容易。因为现在我正在尝试了解我目前关注了多少朋友,但以我目前的 SQL 知识几乎不可能做到这一点。

4

1 回答 1

0

我建议您不要运行此查询

$fid            = mysql_real_escape_string($fid);
$q          = mysql_query("SELECT friend_id FROM friends WHERE friend_one='$uid' AND friend_two='$fid' AND role='fri'");

bcoz 显然在 add_friend 的情况下这两个 id没有相互连接,那么只有你会调用这个函数,所以不需要使用查询。

并且在删除朋友的情况下,这两个 id 是相互连接的,那么只有你会调用这个函数。

所以,我建议删除这两行。而且,你的方法很好,所以继续前进。

于 2012-12-10T06:52:52.577 回答