添加和删​​除朋友按钮

时间:2016-12-17 19:32:49

标签: php html mysql html5 mysqli

我在创建添加好友和移除好友按钮时遇到了一些困难。 例如,如果表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表格,并在此处实施。 我不知道为什么它不起作用。我应该使用循环吗?嗯,在我看来,我认为一个循环它可以很好地工作。

1 个答案:

答案 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
...

请记住,此处没有人真正了解您的数据,因此您可能需要在数据库管理工具中稍微修改一下查询以使其正确。