php - 如何处理foreach中的分页

标签 php mysql

我想获取数组结果的分页。在数组形式中我想一一处理查询。在这种情况下,我该如何处理限制呢?我需要遍历循环并应用分页。

对于单个查询来说是可以的:

$sql = "SELECT * FROM listing WHERE ORG_NAME_ENGLISH='$search' ORDER BY `Sub-type` DESC LIMIT $start, $limit";
$result = mysql_query($sql);

对于数组中的记录,如何处理分页?

$total_pages=count($oidArr);
$targetpage = "paginate.php";   //your file name  (the name of this file)
$limit = 7;                                 //how many items to show per                                 page
$page = $_GET['page'];
if($page) 
    $start = ($page - 1) * $limit;          //first item to display on this     page
else
    $start = 0;                             //if no page var is given, set start to 0

    foreach($oidArr as $orgid)
    {
      echo $start;
      echo $limit;

      /* Get data. */
      $sql = "SELECT * FROM `listing` WHERE `oID`='$orgid' ORDER BY `Sub-type` DESC LIMIT $start,$limit";
      $result = mysql_query($sql);
    }

最佳答案

public function getDataPerPageByOrgId($orgId, $page, $limit)
{
 // count the all the rows data that meet the requirement   
$total_pages = mysql_query("SELECT count(*) from listing WHERE `oID`='$orgId' ");

   // from where should we load data 
    $offset = ($page - 1) * $limit;       

  // Get data. 
  $sql = "SELECT * FROM `listing` WHERE `oID`='$orgid' ORDER BY `Sub-type` DESC LIMIT $offset ,$limit";

  $result = mysql_query($sql);

  $data=[$result, $total_pages];
 return $data;
}

此方法返回一个多维数组,其中包含显示所需的所有数据。 $data[0] 包含您可以循环显示的数据,以及 $data[1] 您可以在末尾显示为链接的页数您的数据列表为 1-2-3-4-5 如果您的数据有问题。只需尝试 print_r($data) 来检查结果是否确实是您所期望的以及如何进入数组。

关于php - 如何处理foreach中的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29310149/

相关文章:

mysql - 查找mysql中用户的深度

php - PHP 在所有浏览器中都是通用的吗?

PHP根据其他表更新表数据

php - 如何调用分配给类变量的 PHP 闭包?

mysql - 当指定的用户不存在时,PDO 连接不会返回错误

简单连接到 MySQL 时 PHP 超时 - 在 win2k8 64 位 IIS 7/FastCGI php 上 - 新安装

php - mysql 查询从给定的表结构创建 SEO 友好的 url

javascript - HTML 页面中的无效字符

php - 将数据插入 MySQL 数据库时出现错误并吐出错误?

php - 链接点击跟踪器 - 更多问题