我正在我正在构建的网站上进行分页,我在这里找到了一个很好的分页示例:http ://www.awcore.com/dev/1/3/Create-Awesome-PHPMYSQL-Pagination_en 。我想在我的页面上使用这个,但我使用的是 mysqli 而不是 mysql,并且需要转换其中的一些。
我是 MySQL 新手,正在尝试找出转换以下代码的语法:
function pagination($query, $per_page = 10,$page = 1, $url = '?'){
$query = "SELECT COUNT(*) as `num` FROM {$query}";
$row = mysql_fetch_array(mysql_query($query));
$total = $row['num'];
$adjacents = "2";
我知道它并不能告诉你整个代码是什么(大约 100 行长),但我假设这可能是一个简单的语法更改。我最初这样做是这样的:
function pagination($query, $per_page = 10,$page = 1, $url = '?'){
$query = "SELECT COUNT(*) as `num` FROM {$query}";
$row = mysqli_fetch_array(mysqli_query($query));
$total = $row['num'];
$adjacents = "2";
我知道 mysqli_query 需要采用两个参数,但我也觉得 mysql_query 是一样的,所以我想我只是不理解代码。抱歉,如果这是一个超级基本的问题,我只是想围绕其中一些概念来思考!谢谢你的帮助。
顺便说一句,我确实看到了这个问题(Converting from mysql to mysqli (mysql_fetch_array)),但似乎他正在采取一些可能不需要采取的额外步骤。
编辑
这是我在上面的代码中收到的错误消息,仅供参考:
警告:mysqli_query() 至少需要 2 个参数,1 个在第 9 行的 linkinformation/functions.php 中给出
警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,在第 9 行的 linkinformation/functions.php 中给出 null
编辑
所以我在函数内添加了一个连接(这是正确的方法吗?我尝试在函数外部进行连接,但它正在获取信息):
function pagination($mysqli, $query, $per_page = 10,$page = 1, $url = '?'){
$mysqli = mysqli_connect("localhost","username","password", "db_name");
$query = "SELECT COUNT(*) as `num` FROM {$query}";
$row = mysqli_fetch_array(mysqli_query($mysqli, $query));
$total = $row['num'];
$adjacents = "2";
我收到这个警告:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in linkstuff/functions.php on line 10
它得到一个布尔值(我假设它是 TRUE),而它应该得到我认为的其他东西/实际查询。