使用ORDER BY

时间:2015-05-23 10:54:27

标签: php mysql pagination

这是查询与分页

$page = (int)(!isset($_GET["page"]) ? 1 : $_GET["page"]);

    if ($page <= 0) $page = 1;

    $per_page = 2; // Set how many records do you want to display per page.

    $startpoint = ($page * $per_page) - $per_page;

    $statement = "`message_box` WHERE reciver = '".dec($_SESSION['user_reporter'])."' AND status='0' GROUP BY `sender` ORDER BY `date_added` DESC";

    $result = mysql_query("SELECT count(*),id,sender,message,status,date_added FROM {$statement} LIMIT {$startpoint} , {$per_page}");

并在显示我的数据的表的末尾,我调用我的分页功能(在我的custom-function.php中定义)。

因此,使用上面的查询我的分页块没有显示。但是当我删除

GROUP BY `sender`

FROM $ statement 就像这样,

$statement = "`message_box` WHERE reciver = '".dec($_SESSION['user_reporter'])."' AND status='0' GROUP BY `sender` ORDER BY `date_added` DESC";

分页显示并且工作正常,但我想要GROUP BY sender子句。

抱歉我的英语不好......请...帮助!

1 个答案:

答案 0 :(得分:0)

此查询:

SELECT count(*), id, sender, message, status, date_added
FROM {$statement}
LIMIT {$startpoint}, {$per_page}
无论LIMIT子句如何,

都将返回一行。它是没有GROUP BY子句的聚合查询。这样的查询是整个表的聚合,按定义返回一行。

如果您想要所有行,请删除count(*)。如果要计算这些列的重复数,请添加GROUP BY id, sender, message, status, date_added