我根本没有使用过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>
答案 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来保证安全。