微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在php中分页

我用这个来收集特定用户评论.我想在每个页面显示7条评论,并希望启用分页.
实施的步骤是什么?抱歉. n00b问题.

$query = "SELECT msg, user_id, comment_time FROM comments WHERE aid = '$aid' ORDER BY comment_time DESC";
        $result = MysqL_query($query) or die("ERROR: $query.".MysqL_error());
        if (MysqL_num_rows($result) > 0) {
            while($row = MysqL_fetch_object($result)){
                $uidval = $row->user_id;
                if ($uidval != 0){
                $userInfo = $facebook->api_client->fql_query("SELECT name, pic_square_with_logo, profile_url FROM user WHERE uid='".$uidval."'");

            //  echo '<br>Array Info<br>';
            //  print_r($userInfo);
            //  echo '<br><br>';

                $nameuser = $userInfo[0]['name'];
                $pic = $userInfo[0]['pic_square_with_logo'];
                $profile_url = $userInfo[0]['profile_url'];

                echo '<img src="'.$pic.'" />';
                echo '<a href="'.$profile_url.'">'.$nameuser.'</a>';
                echo '<br>';
                echo $row->comment_time;
                echo '<br>';
                echo $row->msg;
                echo '<br>';
                }

            }
        }

解决方法:

最好通过sql的limit / offset子句实现该解决方案.对于MysqL,这是通过将LIMIT [offset] [count]附加到查询中来实现的. Postgresql使用单独的select … LIMIT [count] OFFSET [offset]语法.

我们的想法是将返回的结果数量限制为您想要显示的实际数量.如果您显示200页的第1页,每页有100个结果,它可以产生巨大的性能提升.

当然,您需要运行第二个查询 – 从…中选择计数(*)以确定结果集中的结果数.除以每页的结果数,你就得到了页数.

您可能希望在查询字符串中传递页面参数,例如

http://mysite.com/index.PHP?page=7

然后使用类似的方法拉取数据(考虑这个伪代码;我知道我实际上并没有正确查询)

<?PHP

$num_per_page = 20; // 20 results per page

$page = isset($_GET['page']) ? $_GET['page'] : 0; // start from page 0

// Build our big query minus the SELECT part here
$from_part = 'tbl_results [where ...]"'

$num_results = query("SELECT COUNT(*) FROM $from_part");

// Use ceil to round upwards
$num_pages = ceil($num_results / $num_per_page);

// Cap the page a the last page
if ($page > $num_pages)
  $page = $num_pages;

// Cap the page at the first page
if ($page <= 1)
  $page = 1;

$offset = $page * $num_per_page;

// Build the final query to select the relevant page of data
$results = query("SELECT * FROM $from_part LIMIT $offset, $num_per_page");

?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐