2016-03-02 106 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