我正在为我的网站制作朋友列表,用户可以在其中关注、阻止、取消关注和取消阻止其他用户。我的朋友表有 3 列。一列用于较低的用户 ID,一列用于其他用户,以及一个状态列,将展示他们的关系。
user1 | user2 | status
----------------------
1 2 1
1 3 2
2 3 3
我创建了一个测试页面来显示登录用户的关系,并根据他们的状态将他们分成几组。以下代码应该显示所有被选中且状态 = 1 的用户。
if (isset($_SESSION['userID'])) {
$userID = $_SESSION['userID'];
$friendsql = "SELECT * FROM friends WHERE user1 = ? OR user2 = ?";
$friendstmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($friendstmt, $friendsql)) {
echo "error";
}
else {
mysqli_stmt_bind_param($friendstmt, "ii", $userID, $userID);
mysqli_stmt_execute($friendstmt);
$friendresult = mysqli_stmt_get_result($friendstmt);
echo "<div class='friendStatus1'>";
echo "Following";
while (($friendrow = mysqli_fetch_assoc($friendresult)) && ($friendrow['status'] == 1)) {
if ($userID == $friendrow['user1']) {
$otheruserID = $friendrow['user2'];
}
else {
$otheruserID = $friendrow['user1'];
}
$otheruserNamesql = "SELECT userName FROM users WHERE userid = ?";
$otheruserNamestmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($otheruserNamestmt, $otheruserNamesql)) {
echo "error";
}
目前,我的朋友表中有两个与登录用户的状态 = 1 的关系,但我的代码只会显示第一个关系。我的 while 循环有一个错误,它只让第一个关系吐出来。有人可以帮我解决我的错误吗?
眼眸繁星