2016-03-02 38 views
2

我有這個代碼作爲我得到列表的函數,但是使用ORDER BY代碼它不起作用(不返回任何東西)。我如何去訂購它?我看過其他人如何做這件事的工作,但我無法讓它工作。PHP PDO訂單ASC

<?php 
function getGenericList($conn, $limit) { 
    $sql = "SELECT * FROM `jobs_current` LIMIT ".$limit." ORDER BY `jobs_current`.`school` ASC"; 
    $query = $conn->prepare($sql); 
    $query->execute(); 
    $count = $query->rowCount(); 
    if($count == 0){ 
     return '<td class="td1"></td><td class="td2" style="color: red;">Sorry, there doesnt seem to be any results!</td><td class="td3"></td>'; 
    } 
    $end = ""; 
    foreach ($conn->query($sql) as $row) { 

     $end = $end.'<tr class="hoverOver"><td class="td1"><a href="/jobview.php?id='.$row['id'].'">'.$row['school'].'</a></td>'; 
     $end = $end.'<td class="td2"><a href="/jobview.php?id='.$row['id'].'">'.$row['job_type'].'</a></td>'; 
     $end = $end.'<td class="td3"><a href="/jobview.php?id='.$row['id'].'">'.$row['location'].'</a></td></tr>'; 

    }return $end; 
} 
?> 

爲什麼不按照順序返回行?我使用phpmyadmin生成了查詢,所以我不明白爲什麼它不起作用。

+0

您正在運行相同的查詢兩次。而且這兩次都很容易出現SQL注入 –

+0

@YourCommonSense SQL注入評論變老了 - 我們需要一些新東西來惹惱那些新手! –

+0

@YourCommonSense小心解釋它容易發生SQL注入嗎? – Deckerz

回答

4

您查詢語法是錯誤的,寫這個正確的方法是先順序,然後限制:

"SELECT * FROM `jobs_current` ORDER BY `jobs_current`.`school` ASC LIMIT ".$limit."" 
+0

謝謝我沒有意識到我犯了這個錯誤! – Deckerz

+0

Downvoter,謹慎解釋? – Yossi