基于MySQL查询的订单选项列表 - PHP

时间:2016-06-09 18:44:00

标签: php html mysql

我基于数据库查询向用户呈现选项列表。结果正在被正确获取,但它们当前是无序的,我想在选项列表中按字母顺序显示它们。到目前为止,我已经在查询级别上使用“ORDER BY”尝试了几种解决方案,但没有成功。有没有一种简单的方法来实现这一目标? (该列表包含1000多个结果)代码如下:

<?php
$user_id = $_SESSION['user_id'];
$sql = "SELECT * FROM add_bulding WHERE description<>''";
$query = $this->db->query($sql);
$building_title = $query->result_array();
?>


<div>
     <select>
          <option value="">Select Building</option>
          <?php foreach ($building_title as $value) { ?>
              <option value = "<?php echo $value['id']; ?>">
              <?php echo $value['title']; ?> 
              </option>
          <?php
          }
          ?>
     </select>
</div>

3 个答案:

答案 0 :(得分:0)

尝试将您的查询更改为:

$sql = "SELECT * FROM add_bulding WHERE description<>'' ORDER BY title DESC";

答案 1 :(得分:0)

听起来像是要查询:

SELECT id, title FROM add_bulding WHERE description<> ORDER BY title desc

或者,您可以在php中对其进行排序:

<?php
$tmp = array();
foreach ($building_title as $value){
    $tmp[$value['id']] = $value['title'];
}
ksort($tmp);
foreach ($tmp as $k => $v) {
  print "<option value=\"" + $k + "\">" + $v + "</option>\n";
}
?>

但是,在任何一种情况下,请务必清理您的值,以免最终导致XSS问题。

答案 2 :(得分:0)

尝试此查询:

$sql = "SELECT * FROM add_bulding WHERE description<>'' ORDER BY title";

如果您想按字母顺序获取标题数据,那么您可以编写&#39; ASC&#39;或者在ORDER BY标题之后不需要写任何东西。

但是你想要按降序获得标题数据然后你需要写“DESC&#39;在ORDER BY标题之后 我希望你能得到解决方案。