我有一个表集合有许多实体和一个实体有很多colections ..现在有一个特定的集合有很多实体..如何我可以分页属于一个特定的集合的那些实体..如何分页HABTM数据?
(数组'(实体')),我发现的查询说.., $ this-> Collection-> find('first',array('condition'=> array('uid'=> $ uid)), ' ))); 现在如何分页实体的结果..
我有一个表集合有许多实体和一个实体有很多colections ..现在有一个特定的集合有很多实体..如何我可以分页属于一个特定的集合的那些实体..如何分页HABTM数据?
(数组'(实体')),我发现的查询说.., $ this-> Collection-> find('first',array('condition'=> array('uid'=> $ uid)), ' ))); 现在如何分页实体的结果..
在您的控制器动作
$这 - >分页=阵列( '实体'=>数组( '条件'=> “Entity.collection_id = $ ID”, '字段'= > array('Entity。*') ) );
$ this-> set('entities',$ this-> paginate($ this-> Collection-> Entity));
我假设你在使用SQL数据库。
现在我还没有测试代码,但我认为它应该工作。
// First query to get some info.
$testquery = mysql_query("SELECT * FROM `table` WHERE `entity` = 'something'");
if(!$testquery) die(mysql_error());
$total_items = mysql_num_rows($testquery); // Count the total number of entity's that match the criteria.
$limit = 10; // Maximun number of entity's on page.
$page = $_GET['page'];
//calcuate total pages
$total_pages = ceil($total_items/$limit); // ceil is used to round up fractions to the next int
$set_limit = $page * $limit - ($limit);
$query2 = mysql_query("SELECT * FROM `table` WHERE `entity` = 'something' LIMIT $set_limit, $limit");
if(!$query2) die(mysql_error());
//show data matching query:
while($code = mysql_fetch_object($query2)) {
echo("item: ".$code->title."<BR>");
}
// This displays the "previous page" link if there is a previous page.
$prev_page = $page - 1;
if($prev_page >= 1) {
echo("<a href=yourpagename.php?page=$prev_page>Previous</a>");
}
//Display middle pages:
$mid_page = 1;
while ($total_pages >= $mid_page) {
if ($page == $midpage){
echo ("<b>$mid_page</b> | ");
}
else {
echo (" <a href=yourpagename.php?page=$mid_page> $mid_page </a> | ");
$midpage++;
}
}
// This page will display a "next page" link if there is one.
$next_page = $page + 1;
if($next_page <= $total_pages) {
echo("<a href=yourpagename.php?page=$next_page>Next</a>");
}