我有下一个代码,他向用户展示了新的categoires。 问题我不知道如何限制结果并对5个最后的类别进行限制?谢谢!抱歉英文不好。 感谢
<?php
$stmt = $pdo->prepare('SELECT * FROM categories');
$stmt->execute();
echo $stmt->rowCount();
?>
</span>
</a>
<ul class="dropdown-menu extended notification">
<li>
<p>Categories</p>
</li>
<?php
if($stmt->rowCount() > 0) {
foreach($stmt->fetchAll() as $row) {
$html = '<li>';
$html .= '<div class="alert alert-info clearfix">';
$html .= '<span class="alert-icon"><i class="fa fa-flag"></i></span>';
$html .= '<div class="noti-info">';
$html .= 'Category #'.$row['CategoryID'].' '.$row['CategoryName'].'';
$html .= '</div>';
$html .= '</div>';
$html .= '</li>';
echo $html;
}
} else {
$html = '<li>';
$html .= '<div class="alert alert-danger clearfix">';
$html .= '<span class="alert-icon"><i class="fa fa-flag"></i></span>';
$html .= '<div class="noti-info">';
$html .= '<a href="#"> There are no available categories.</a>';
$html .= '</div>';
$html .= '</div>';
$html .= '</li>';
echo $html;
}
?>
答案 0 :(得分:2)
在您的查询中使用ORDER BY,DESC和LIMIT,即:
SELECT * FROM categories ORDER BY ColumnNameEx DESC LIMIT 5;
ORDER BY
在某些情况下,
中的常量MySQL
可以使用索引来满足ORDER BY
子句 没有做额外的排序。
即使ORDER BY
与{1}}不匹配,也可以使用索引 索引完全,只要索引的所有未使用部分和所有 额外ORDER BY
列是WHERE
子句
http://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html
DESC
默认排序顺序是升序,首先是最小值。至 按反向(降序)顺序排序,将
DESC
关键字添加到名称中 您要排序的列。
http://dev.mysql.com/doc/refman/5.7/en/sorting-rows.html
LIMIT
如果您只需要结果集中指定数量的行,请使用a 查询中的
LIMIT
子句,而不是获取整个结果集 并丢掉额外的数据。
https://dev.mysql.com/doc/refman/5.5/en/limit-optimization.html
答案 1 :(得分:0)
在查询“LIMIT x”的末尾添加,x是您想要获得的结果数量