每次刷新页面后推进内部行指针

时间:2014-11-28 17:09:52

标签: php mysql

我有这个想法一直困扰着我。以普通的方式获取行,我会使用这个PDO代码:

$dbh = new PDO('mysql:host=localhost;dbname=odesk', 'root', '123456');
$sth = $dbh->prepare("select * from foo");
$sth->execute();

while($result = $sth->fetch(PDO::FETCH_ASSOC)){
    $bar = $result['bar'];

    echo $bar . '   ' . PHP_EOL;
}

并一个接一个地获取行。我用来获取行的PHP脚本驻留在服务器端,而我只在客户端,我只有一个浏览器。

在每次页面刷新后,是否有一种方法可用于推进内部行指针,以便客户端每次刷新页面时都会看到新记录?

我的自动递增列没有任何帮助,因为它已被严格编辑并删除了一些行。

1 个答案:

答案 0 :(得分:1)

(这不是mysqli代码,它是pdo)

"select * from foo limit 2,1";

获取第3行

"select * from foo limit 3,1";

让你排第4行

"select * from foo limit 4,1";

获得第5行

所以,如果你可以将列表中的下一个数字传递给下一页,那么它将从你的数据库中获取。有几种方法可以做到这一点,会话等,或使用url字符串(GET)

yourpage.php?next=7

你所要做的就是增加下一页

'select * from foo limit ' . (int)$_GET['next'] . ',1';

这不是一个完整的测试解决方案,更多地将其视为伪代码,只是为了展示它是如何完成的。

(int)用于将传入变量强制转换为整数,并且只是一种穷人保护db免受sql注入攻击的方式,在现实生活当然你会使用,Mysql或PDO编写的语句,'当然你将!