如何从My sql中分页无限数据,如果我想使用限制,我必须知道行数,但我不知道行数。
这是从数据库获取数据的代码:
<?php
$accid = $_SESSION['accid'];
set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] . "bulk2/" );
include("/config.php");
$con = mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
mysql_query("SET CHARACTER SET utf8");
$res=mysql_query("SELECT * FROM `sent_msgs_history` WHERE `accid` = $accid" ***LIMIT 0,5*** );
if(mysql_num_rows($res)> 0)
{
for($i=0;$i<mysql_num_rows($res);$i++) {
$row=mysql_fetch_assoc($res);
//$de_name = decrypt($key,$iv,$row['rec_name']);
//$de_mobile = decrypt($key,$iv,$row['mobile_number']);
$de_name = $row['senderName'];
$de_length = $row['MessageLength'];
$de_count = $row['MessageCount'];
$de_date = $row['sent_on'];
$de_sender = $row['sent_by'];
?>
<tr>
<td> <?php echo $de_name ;?> </td>
<td> <?php echo $de_length;?> </td>
<td> <?php echo $de_count;?> </td>
<td> <?php echo $de_sender;?> </td>
<td> <?php echo $de_date;?> </td>
</tr>
<?php }?>
</table>
<br>
<br><br> <br>
<?php
}?>
我不知道排的数量,我怎么能这样做????? 请帮帮我&gt;&gt;&gt;
答案 0 :(得分:1)
相似/相同的问题 - MySQL skip first 10 results
或者在偏移后获得所有结果 - MySQL skip first 10 results
LIMIT只需要从items_per_page
到items_per_page * last_index
类似于:
SELECT * FROM sent_msgs_history LIMIT items_per_page, items_per_page * lastindex
所以当每页收到40个项目时:
第1页将是LIMIT 40
第2页将是LIMIT 40, 40
第3页将是LIMIT 40, 80
答案 1 :(得分:0)
你的意思是无限制的分页?
如果您想知道行数SELECT COUNT(*) FROM sent_msgs_history
或
当用户选择“无限制分页”时,请勿使用限制
答案 2 :(得分:0)
使用具有所需限制范围的循环,然后在查询结束时使用此循环。 as(简单的分页)
$limit='';
$i=0;
$q=mysql_query(...)
while($i<=mysql_num_rows($q))
{
$b=$i+5;
$limit='limit '.$i.', '.$b;
mysql_query(...$limit)
}