[英]Echo row 30 with php from sql result?
我想从行数不受限制的sql中获取结果,我不想在sql语句中使用limit
,因为我需要知道行的总数。 但是我只想echo
,例如30-60行。
我使用php。
首先,运行以下语句:
SELECT SQL_CALC_FOUND_ROWS
*
FROM mytable
ORDER BY
mycol
LIMIT 30, 30
,提取行并将其保存到数组中。
之后,运行以下语句:
SELECT FOUND_ROWS()
,它将显示没有LIMIT
子句的前一条语句将返回的总行数。
http://php.net/manual/zh/function.mysql-data-seek.php
mysql_data_seek()
移动与指定结果标识符关联的MySQL结果的内部行指针,以指向指定的行号。 下次调用MySQL fetch函数,例如mysql_fetch_assoc()
,将返回该行。
mysql_data_seek($res, 30);
for ($i = 0; $i < 30; ++$i) {
$row = mysql_fetch_assoc($res);
var_dump($row);
}
$query=mysql_query("SELECT....");
$array=array();
while($row=mysql_fetch_row($query)){
$array[]=$row;
}
现在,您将拥有包含所有行的$ array数组。 如果只想打印30至60之间的行,请使用以下命令:
for($i=30;$i<60;$i++) echo $array[$i][0];
我相信Quassnoi的意思是:
SELECT SQL_CALC_FOUND_ROWS * FROM accounts ORDER BY accountID LIMIT 30
然后运行以下select语句以查找行数:
select found_rows();
当然,您不应该使用*进行任何查询,因为它会影响性能。 使用所需列的名称。 我认为这将是最好的方法,因为它是最有效的。 如果您只需要一个计数和30行,则无需返回整个表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.