Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP分页显示错误_Php_Mysql_Pagination - Fatal编程技术网

PHP分页显示错误

PHP分页显示错误,php,mysql,pagination,Php,Mysql,Pagination,我已经为我的网站创建了分页,它显示了一个错误: 分析错误:语法错误,第29行的Foldername中出现意外的“%” 以下是我一直在研究的代码: <?php $count_query = mysql_query("SELECT NULL FROM posts"); $count = mysql_num_rows($count_query); if (isset($_GET['page'])) { $page = preg_replace("#[

我已经为我的网站创建了分页,它显示了一个错误:

分析错误:语法错误,第29行的Foldername中出现意外的“%”

以下是我一直在研究的代码:

<?php

    $count_query = mysql_query("SELECT NULL FROM posts");
    $count = mysql_num_rows($count_query);

    if (isset($_GET['page'])) {

        $page = preg_replace("#[^0-9]#","",$_GET['page']);

    } else {

        $page = 1;

    }

    $perPage = 10;
    $lastPage = ceil($count / $perPage);

    if ($page < 1) {

        $page = 1;

    } else if ($page > $lastPage) {

        $page = $lastPage;

    }

    $limit = "LIMIT " .($page -1)"$perPage.","$perPage";

    $query = mysql_query("SELECT * FROM posts ORDER BY postNum DESC $limit");

    if ($lastPage != 1) {

        if ($page != $lastPage) {
            $next = $page + 1;
            $pagination .= '<a href="foldername/?page='.$next.'" class="pagerRight">Next</a>';
        }

        if ($page != 1) {
            $prev = $page - 1;
            $pagination .= 'foldername/?page='.$prev.'" class="pagerLeft">Prev</a>';
        }

    }

?>

第29行是:
$limit=“limit”。($page-1)“$perPage.”,“$perPage”;

您可以尝试更改

$limit = "LIMIT " .($page -1)"$perPage.","$perPage";

此解决方案将$page-1乘以10(我已经看到您的代码),将分页-1*10限制为page*10

例如:

第1页:

限制0,10 第2页: 限制10,20 等等

编辑:

尝试改变

$query = mysql_query("SELECT * FROM posts OREDER BY postNum DESC $limit");
与:


正确的订单和使用正确的链(点)

是的,肯定是
$limit=“limit.”($page-1)“$perPage.”,“$perPage”有问题";警告:
mysql\u query
是一个过时的接口,不应在新的应用程序中使用,因为它将在未来的PHP版本中删除。一个现代的替代品。如果您是PHP新手,像这样的指南可以帮助您解释最佳实践。这里还有一些非常可疑的代码,用于注入分页变量,这似乎异常复杂。是的,我知道,但您知道这段代码中有什么问题吗?
echo$limit=“limit”。($page-1)“$perPage.”,“$perPage”然后您将看到所传递的内容。你需要修复连接。如果我们知道你想要的
$limit
是什么,这个语法错误会更容易弄清楚。这确实有效,但它显示了所有帖子,而不是将其分页为10。@Arqetech编辑了我的回答仍然是相同的结果:
OREDER
是一个键入错误!让我们来看看。
$query = mysql_query("SELECT * FROM posts OREDER BY postNum DESC $limit");
$query = mysql_query("SELECT * FROM posts ORDER BY postNum DESC ".$limit."");