<?php
$quuuu = mysql_query("SELECT * FROM products limit 9,15 ") or die("Query Error");
while($ffff=mysql_fetch_array($quuuu)){
echo "<li><a href='view.php?id=" . $ffff['id'] . "'>" . $ffff['title'] . "</a></li>";
}
echo mysql_num_rows($quuuu);
?>
它应该返回(7), 结果是(15)
答案 0 :(得分:0)
请参阅文档https://dev.mysql.com/doc/refman/5.0/en/select.html。
LIMIT子句可用于约束SELECT语句返回的行数。 LIMIT需要一个或两个数字参数,它们都必须是非负整数常量(使用预准备语句时除外)。
使用两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。
所以使用您的查询,
SELECT * FROM产品限制9,15
你告诉mysql
从第十行开始返回十五行。您从15
获得echo mysql_num_rows($quuuu);
,因为有15行。为什么期望输出7
?
另请注意,mysql_
驱动程序已弃用,您应切换为PDO
或mysqli
。它们有更多有用的功能。
http://php.net/manual/en/migration55.deprecated.php
现在不推荐使用原始MySQL扩展,并且在连接到数据库时会生成E_DEPRECATED错误。相反,请使用MySQLi或PDO_MySQL扩展。
http://php.net/manual/en/book.mysqli.php
http://php.net/manual/en/ref.pdo-mysql.php
答案 1 :(得分:0)
你的LIMIT使用是错误的。
Syntax: limit start_at, amount_of_records
如果你想要从第15个元素开始的7个元素,你应该使用
SELECT * from products limit 14, 7