php - 在 Mysql 分页 (LIMIT) 方面需要很少的帮助

标签 php mysql

我有这个代码:

    $page = $_GET['page'];
    $res_per_page = $_GET['res_per_page'];

    $start_point = (($page * $res_per_page) - $res_per_page);
    $query.= " LIMIT $start_point, $res_per_page";
    $qry_result = mysql_query($query) or die(mysql_error());
    $total_pages = ceil($nr_ads / $res_per_page); 

变量 '$nr_ads' 是广告的总 nr...

代码运行良好,但我想知道如何确定显示的是哪些广告,例如:

   Showing ads 10 - 20

谢谢...

最佳答案

print 'Showing ads ' . $start_point . ' - ' . min($nr_ads, $start_point + res_per_page);

基本上你已经有了起点(这是给你的 SQL 中的 LIMIT 子句。“终点”是通过将 $res_pre_page 添加到这个起点。然而,在最后一页上,您可能只有 2 条记录 - 因此您应该使用 min() 函数来打印例如“显示广告 60 - 62”。


跟进:另一个回答提到了SQL注入(inject)的风险。使用:

$page = intval($_GET['page']);
$res_per_page = max(1, intval($_GET['res_per_page'])); // To avoid division by zero :)

关于php - 在 Mysql 分页 (LIMIT) 方面需要很少的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1818177/

相关文章:

javascript - AJAX请求成功但返回空数据

mysql - 改进 WordPress 主题中的 MySQL Select 语句

MYSQL 一次查询多个表

php - 寻找使用 PHP 和 MySQL 存储表的更好方法

PHP:数组搜索组

php - 在文本/纯电子邮件中添加换行符

php - 如何使用 file_get_contents ('php://input' 获取文件信息 + 正文)?

python - 将外部 mysql 数据库连接到 django 应用程序并对其进行查询

php - Laravel 在没有数据库的情况下连接 MySQL

mysql - WHERE 条件与 NULL 无关,消除具有 NULL 值的行