你想要的是分页。我开始告诉你用谷歌搜索它,但在我自己做了之后,我发现有很多不好的建议,不值得。
首先,您想使用更现代的方法连接到 mysql 数据库。这些mysql_*
函数在 PHP 中已被弃用,它们被认为存在安全风险。我更喜欢PDO,它为您提供了许多不同数据库的良好一致接口。另一种选择是MySQLi,如果您习惯了这些mysql_*
功能,它会更容易一些
从那里开始,只需限制查询,然后让您的脚本知道要返回哪组值。这就是我的做法(注意我没有对此进行测试,因此可能存在错误!您还需要决定如何处理输出和错误)
// Database connection stuff goes here
$start = $_GET['start'];
$per_page = 10; // or config value of your choice
// first find out how many you have
try {
$res = $dbh->prepare( "SELECT COUNT(*) FROM `images`" );
$res->execute();
}
catch(PDOException $e) {
// do something with errors!
}
list($count) = $res->fetch(PDO::FETCH_NUM);
$end = $start + $per_page;
if( $count < $end ) {
$end = $count;
}
// next and previous values. Just create links and these
// become the "start" parameter
$next = $end + 1;
$prev = $start - $per_page;
if( $prev < 0 ) {
$prev = 0
}
// now get the results
try {
$res = $dbh->prepare("SELECT * FROM `images`
ORDER BY `id` DESC LIMIT $start, $end");
$res->execute();
while( $image = $res->fetch(PDO::FETCH_ASSOC) ) {
// store or output the results
}
}
catch(PDOException $e) {
// do something with errors!
}
要在滚动时自动执行此操作,您可以使用 jQuery 检查滚动事件,然后调用后端代码以自动加载更多结果(通过将 $prev 和 $next 值设置到调用中)