我有一个系统,其中用户的朋友存储在与该用户关联的数组中。我有一个功能,就是从这个好友数组中只删除一个人。但是,当此代码从remove friend按钮触发时,它会删除整个数组。我将数组设置为用逗号分隔用户(因此使用了各种$usernameComma变量)
if (@$_POST['removefriend']) {
//Friend array for logged in user
$add_friend_check = mysql_query("SELECT friend_array FROM users WHERE username='$user'");
$get_friend_row = mysql_fetch_assoc($add_friend_check);
$friend_array = $get_friend_row['friend_array'];
$friend_array_explode = explode(",",$friend_array);
$friend_array_count = count($friend_array_explode);
//Friend array for user who owns profile
$add_friend_check_username = mysql_query("SELECT friend_array FROM users WHERE username='$username'");
$get_friend_row_username = mysql_fetch_assoc($add_friend_check_username);
$friend_array_username = $get_friend_row_username['friend_array'];
$friend_array_explode_username = explode(",",$friend_array_username);
$friend_array_count_username = count($friend_array_explode_username);
$usernameComma = ",".$username;
$usernameComma2 = $username.",";
$userComma = ",".$user;
$userComma2 = $user.",";
if (strstr($friend_array,$usernameComma)) {
$friend1 = str_replace("$usernameComma","",$friend_array);
}
else
if (strstr($friend_array,$usernameComma2)) {
$friend1 = str_replace("$usernameComma2","",$friend_array);
}
else
if (strstr($friend_array,$username)) {
$friend1 = str_replace("$username","",$friend_array);
}
//Remove logged in user from other persons array
if (strstr($friend_array,$userComma)) {
$friend2 = str_replace("$userComma","",$friend_array);
}
else
if (strstr($friend_array,$userComma2)) {
$friend2 = str_replace("$userComma2","",$friend_array);
}
else
if (strstr($friend_array,$user)) {
$friend2 = str_replace("$user","",$friend_array);
}
$friend2 = "";
$removeFriendQuery = mysql_query("UPDATE users SET friend_array='$friend1' WHERE username='$user'");
$removeFriendQuery_username = mysql_query("UPDATE users SET friend_array='$friend2' WHERE username='$username'");
echo "Friend Removed ...";
}
?>发布于 2014-05-07 08:05:43
看起来您总是通过在查询前设置$friend2 = "“来清除第二个用户("other persons数组”)的friend_array。
然而,绝对同意Mike Brant评论中的建议。这是一种好得多的方法。它可能需要做更多的工作来改变,但最终的结果将更加适用于这个和未来的开发。
https://stackoverflow.com/questions/23506350
复制相似问题