【问题标题】:Warning: mysqli_fetch_array() expects at most 2 parameters in PHP [duplicate]警告:mysqli_fetch_array() 在 PHP 中最多需要 2 个参数 [重复]
【发布时间】:2018-02-08 21:19:55
【问题描述】:

我尝试使用数据库迭代创建分页。这是我目前的代码。

$per_page = 5;
$result = mysqli_query($connection,"SELECT * FROM inquiries");
$total_records = mysqli_num_rows($result);
$total_pages = ceil($total_records / $per_page);

if (isset($_GET['page'])) {
    $show_page = $_GET['page'];
    if ($show_page > 0 && $show_page <= $total_pages) {
        $start = ($show_page - 1) * $per_page;
        $end = $start + $per_page;
    } else {
        $start = 0;
        $end = $per_page;
    }
} else {
    $start = 0;
    $end = $per_page;
}
$page = intval($_GET['page']);

$tpages=$total_pages;
if ($page <= 0)
    $page = 1;
for ($i = $start; $i < $end; $i++) {
    if ($i == $total_records) {
        break;
    }
    echo mysqli_fetch_array($result,$i,'message');  

那个。因为它会出现以下错误。

警告:mysqli_fetch_array() 最多需要 2 个参数,3 个在..中给出。

谁能帮我解决这个错误。

【问题讨论】:

  • 在查询中使用LIMIT start, count 进行分页。
  • 另外,考虑使用while($row = $result-&gt;fetch_assoc())
  • 但我想通过'for'循环来完成。否则分页将不起作用
  • 您似乎正在尝试使用 mysqli_fetch_array() 替代 mysql_result()。见stackoverflow.com/questions/2089590/…

标签: php for-loop mysqli pagination


【解决方案1】:

您可以在第一次查询时尝试 SQL_CALC_FOUND_ROWS 限制,然后将 SELECT FOUND_ROWS(); 作为总数。

SELECT SQL_CALC_FOUND_ROWS, Id, Name FROM my_table WHERE <give your condition> LIMIT 0, 10;

# Find total rows
SELECT FOUND_ROWS();

【讨论】:

  • 使用 echo mysqli_fetch_array($result);代替 echo mysqli_fetch_array($result,$i,'message');
  • 但是 $i 会发生什么?你能解释一下通过'SQL_CALC_FOUND_ROWS'到底做了什么吗?
  • 通过类似循环的计算处理偏移量 Select SQL_CALC_FOUND_ROWS uid, name users ORDER BY uid desc LIMIT 5 OFFSET 0 Select SQL_CALC_FOUND_ROWS uid, name users ORDER BY uid desc LIMIT 5 OFFSET 5 Select SQL_CALC_FOUND_ROWS uid, name users ORDER BY uid desc LIMIT 5 OFFSET 15 并像 $count = mysqli_query($connection,"SELECT FOUND_ROWS()"; 我希望它确实有意义。代码未经测试。
  • 是的,它很有帮助。谢谢
猜你喜欢
  • 1970-01-01
  • 2017-10-23
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多