2016-06-09 29 views
-1

我正在基於數據庫查詢向用戶展示一個選項列表。結果正在被正確提取,但是它們目前是無序的,我想在選項列表中按字母順序顯示它們。到目前爲止,我已經在查詢級別嘗試了幾種解決方案,但沒有成功。有沒有簡單的方法來實現這一點? (該列表包含1000次以上的結果)的代碼如下:基於MySQL查詢的選項列表 - PHP

<?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> 
+2

ORDER BY標題應該工作 – Mihai

+2

通過查詢添加順序應該給你正確的順序。請通過查詢顯示您的訂單,以及數據的一小部分,以及爲什麼它是錯誤的 –

回答

0

試着改變你的查詢:

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

謝謝這工作完美 – 1dxb

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問題。如果你想獲得與字母順序,那麼你可以寫「ASC」或不需要ORDER BY標題後寫任何標題數據

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

0

嘗試此查詢。

但是你想以降序得到標題數據,那麼你需要在ORDER BY title 之後寫'DESC'我希望你能得到解決方案。