MySQL添加好友|删除朋友 - 关注|取消关注系统效率

时间:2012-12-10 06:20:22

标签: php mysql

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

+ ----------------------------------- friend_id | friend_one | friend_two |角色-------------------------------------------- + + ------------------------------------------------- -------------------------------------------------- ----------------------------- +

这是一个跟随和取消关注的系统,但它并不太好。

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

// 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的知识来做这件事。

1 个答案:

答案 0 :(得分: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'");
add_friend 的情况下bcoz obvoiusly,两个id 彼此没有连接然后只有你会调用这个函数,所以不需要使用查询。 / p>

如果删除好友,两个ID 相互连接,那么只有您才能调用此功能。

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