繁体   English   中英

MYSQL限制返回意外结果

[英]MYSQL limit returns unexpected results

<?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)

参见文档https://dev.mysql.com/doc/refman/5.0/en/select.html

LIMIT子句可用于约束SELECT语句返回的行数。 LIMIT接受一个或两个数字参数,这两个参数都必须是非负整数常量(使用预处理语句时除外)。

有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。

因此,根据您的查询,

SELECT * FROM产品限制9,15

您要告诉mysql从第十行开始返回十五行。 您将从echo mysql_num_rows($quuuu);获得15 echo mysql_num_rows($quuuu); 因为有15行。 为什么期望输出7

另请注意, mysql_驱动程序已弃用,您应切换到PDOmysqli 它们具有更多有用的功能。

http://php.net/manual/en/migration55.deprecated.php

现在不推荐使用原始的MySQL扩展,并且在连接数据库时会生成E_DEPRECATED错误。 而是使用MySQLi或PDO_MySQL扩展。

http://php.net/manual/zh/book.mysqli.php
http://php.net/manual/zh/ref.pdo-mysql.php

您的LIMIT使用有误。

Syntax: limit start_at, amount_of_records

如果要从第15个元素开始有7个元素,则应使用

SELECT * from products limit 14, 7

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM