我在创建添加好友和移除好友按钮时遇到了一些困难。 例如,如果表friend_request的mysql中的'accepted'行等于1,那么它应该出现'Remove Friend'按钮,否则它应该出现'Add Friend'按钮。
以下是我所做的按钮的代码,这是错误的。
<?php
$selfriendsBtn = "SELECT fr.username
FROM (select from_username AS username
FROM friends_request
WHERE to_username = '".$_GET['u']."' AND accepted = 1
UNION ALL
SELECT to_username AS username
FROM friends_request
WHERE from_username = '".$_GET['u']."' AND accepted = 1) AS fr
JOIN users AS u ON u.username = fr.username LIMIT 5";
$resultfriend_add_rmv = $sql->query($selfriendsBtn);
$rowAdd_RmvFriend = mysqli_fetch_assoc($resultfriend_add_rmv);
$accepted = $rowAdd_RmvFriend['accepted'];
if($user != $_GET['u']) {
if($accepted == 1) {
?>
<table>
<tr>
<td>
<form action="profile.php?u=<?php echo $_GET['u']; ?>&deleted=<?php echo $user; ?>" method="POST">
<input type="submit" name="rmvfriend" value="Remove Friend" />
</form>
</td>
<td>
<form action="profile.php?u=<?php echo $_GET['u']; ?>&a=compose" method="POST">
<input type="submit" name="msg" value="Message" />
</form>
</td>
</tr>
</table>
<?php
} else {
?>
<table>
<tr>
<td>
<form action="profile.php?u=<?php echo $_GET['u']; ?>&requested=<?php echo $user; ?>" method="POST">
<input type="submit" name="addfriend" value="Add Friend" />
</form>
</td>
<td>
<form action="profile.php?u=<?php echo $_GET['u']; ?>&a=compose" method="POST">
<input type="submit" name="msg" value="Message" />
</form>
</td>
</tr>
</table>
<?php
}
}
?>
我从 friends.php 页面中选取的SELECT表格,并在此处实施。 我不知道为什么它不起作用。我应该使用循环吗?嗯,在我看来,我认为一个循环它可以很好地工作。
答案 0 :(得分:0)
您正在寻找结果集中不存在的值:
$accepted = $rowAdd_RmvFriend['accepted'];
您从数据库中选择的唯一值是用户名:
SELECT fr.username
FROM ...
所以$accepted
永远不会等于1
。因此,这总是错误的:
if ($accepted == 1)
因此将始终显示else
块(“添加好友”按钮)。
您还应该从查询中选择accepted
值,以便在逻辑中使用它。这主要是根据您的查询到目前为止的猜测,但看起来您需要在三个位置添加它:
SELECT fr.username, fr.accepted -- here
FROM (select from_username AS username, accepted -- here
FROM friends_request
WHERE to_username = ? AND accepted = 1
UNION ALL
SELECT to_username AS username, accepted -- here
FROM friends_request
...
请记住,此处没有人真正了解您的数据,因此您可能需要在数据库管理工具中稍微修改一下查询以使其正确。