我目前有一个名为[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的知识来做这件事。
答案 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 相互连接,那么只有您才能调用此功能。
所以,我建议删除这两行。而且,你的方法很好,所以继续前进。