查找用户小部件

时间:2016-02-24 14:03:44

标签: php mysql

我根本没有使用过php / mysql,这是我到目前为止所做的。

我想在我的网页上创建一个显示5个随机用户的部分,所以我每个输出5个查询输出1个用户,它工作正常,但我有一些我需要帮助添加的东西,我想要用户名我当前以排除方式登录,我希望没有重复的用户名。到目前为止,我的代码如下,非常感谢帮助。

include "connect.php";
        $query = mysql_query("SELECT * FROM users ORDER BY rand() LIMIT 5");
        $row = mysql_fetch_assoc($query);
        $random = $row['username'];

        $query = mysql_query("SELECT * FROM users ORDER BY rand() LIMIT 5");
        $row = mysql_fetch_assoc($query);
        $random2 = $row['username'];

        $query = mysql_query("SELECT * FROM users ORDER BY rand() LIMIT 5");
        $row = mysql_fetch_assoc($query);
        $random3 = $row['username'];

        $query = mysql_query("SELECT * FROM users ORDER BY rand() LIMIT 5");
        $row = mysql_fetch_assoc($query);
        $random4 = $row['username'];

        $query = mysql_query("SELECT * FROM users ORDER BY rand() LIMIT 5");
        $row = mysql_fetch_assoc($query);
        $random5 = $row['username'];

        echo "
        <div class='well well-sm' style='padding-top:4px;padding-bottom:8px; margin-bottom:8px; overflow:hidden; background:white;'>
            <a href='./$random'>$random</a><br>
            <a href='./$random2'>$random2</a><br>
            <a href='./$random3'>$random3</a><br>
            <a href='./$random4'>$random4</a><br>
            <a href='./$random5'>$random5</a>
        </div>
    </div>

2 个答案:

答案 0 :(得分:0)

$query = mysqli_query('SELECT * FROM users WHERE username <> "' . mysqli_real_escape_string($connection, $username) . '" ORDER BY rand() LIMIT 5');

while($row = mysqli_fetch_array($query)) {
        $random[] = $row['username'];           
}

foreach ($random as $random_user) { //echo name of each random user
        echo $random_user . '<br />';
}

答案 1 :(得分:0)

如果您的用户名存储在$ username中,则可以

$list= array();
$list[]=$username;
$query = mysql_query("SELECT * FROM users WHERE username NOT IN $list ORDER BY rand() LIMIT 5");

然后,您只需将每次迭代的用户名添加到列表中即可。

我也认为循环会更有效。

我有点困惑,但是限制5表示你期望从你的查询获得5个结果,但你从assoc数组中提取一个。

如果你的查询返回5行(你可以通过在phpMyAdmin或你拥有的任何SQL控制面板中运行它来检查),那么你不需要继续运行它,它不应该返回重复项。你刚跑:

while($row = mysql_fetch_assoc($query)){
$list[]=$row;
}

然后,您可以使用该列表限制进一步的迭代并存储您已获得的所有用户。

另外,你应该注意不推荐使用mysql扩展,你需要mySQLi或PDO_MySQL来保证安全。