【发布时间】:2016-05-26 16:55:12
【问题描述】:
我有以下工作代码来输出状态并输出每个州下的相关城市。但是,我想对每个州的城市进行洗牌或随机化。例如,如果州是加利福尼亚,那么我想将其下的相关输出城市随机化或随机化。我尝试为此使用不同的方法,例如 ORDER BY RAND()、implode() 等,但没有得到正确的结果。
$get_result = "select DISTINCT state_name, city_name from country WHERE country_name='$select_country' ORDER BY state_name ASC";
$result = array();
$run = mysqli_query($dbconfig, $get_result);
while ($row=mysqli_fetch_array($run)) {
$state_name = $row['state_name'];
$city_name = $row['city_name'];
if (!isset($result[$state_name])) {
echo '<p>' . $state_name . '</p>';
$result[$state_name] = true;
}
echo '<p style="margin-left: 10px;"><a href="http://examplesite.com/'.$city_name.'">'. $city_name .'</a></p>';
}
我们将不胜感激任何有关此事的帮助。
【问题讨论】:
-
警告:当使用
mysqli时,您应该使用parameterized queries 和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了一个严重的SQL injection bug。 切勿将$_POST或$_GET数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 -
为什么
ORDER BY RAND()得不到正确的结果?