繁体   English   中英

从SQL结果中用PHP回显第30行?

[英]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.

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