我正在尝试使用mysql_num_rows然后将查询结果拆分为页面(通过将结果除以10),但现在编写页码前端脚本时遇到了麻烦。
所以我希望它看起来像:1 2 3 4 5 6等
这将基于:
$num = mysql_num_rows($sql);
$pageno = $num/10; // this will give the number of pages
那么我想运行结果,以便动态填充
<a href="page.php?page=$pageno">$pageno</a>
所以基本上需要自动增加页码。
我使用了你的答案的组合,发现这对我有用
for ($x=0; $x < $division; $x++) {
if($x=0){
$x=1;
}else{
}
echo "<div class='pageno'><a href='viewlist.php?page=$x&$stringVAR' >" . ($x+1) . "</a></div>";
}
答案 0 :(得分:0)
首先你需要总页数
您的$pageno
是总页数
您需要一个页面控制变量:
$page=$_GET['page'];
if $page=="" then
$page=1;
end if
然后你需要使用LIMIT(http://dev.mysql.com/doc/refman/5.0/es/select.html)分割你的sql结果
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
你的sql必须像:
$sql="select [..] from [...] where [...] LIMIT ".(10*$page-1).",".(10*$page)-1;
代表$page=1
- &gt;限制0,9
$page=2
- &gt;限制10,19
...
把1 2 3 4 5 ......现在很容易
for($i=1;$i<=$pageno;$i++){
echo "<a href=\"page_with_results.php?page=".$i·"\">".$i."</a>";
}
答案 1 :(得分:0)
biziclop建议您应该使用行数而不是每次都获取所有记录是正确的,但运行单独的查询以获取计数是不可取的:
$rows_per_page=30;
$current_page=(integer)$_GET['page'];
$offset=$current_page*$rows_per_page
$qry="SELECT FOUND_ROWS() as totrows, a.* FROM a_table LIMIT $offset,$rows_per_page";
$res=mysql_query($qry);
while ($r=mysql_fetch_assoc($res)) {
if (!$tot_rows) {
$tot_rows=r['totrows'];
}
// show row data
print....
}
print "Showing rows " . $offset . " to " . ($offset+$rows_per_page) . " of $tot_rows<br/>\n";
$pages = ceil($tot_rows / $rows_per_page);
for ($x=0; $x<$pages; $x++) {
print "<a href='$url?page=$x'>" . ($x+1) . "</a> <br />";
}
答案 2 :(得分:0)
mysql_num_rows()函数返回no。对于以下查询的行,$ pageno = $ num / 10只是将no除。由10返回的行。
了解更多信息,请点击http://www.w3schools.com/php/func_mysql_num_rows.asp
答案 3 :(得分:0)
您的寻呼代码如下:
if($numrows!=0)
{
if($_REQUEST['rowsperpage'])
{
if(!isDigit($_REQUEST['rowsperpage']))
$rowsPerPage=10;
else
$rowsPerPage =$_REQUEST['rowsperpage'];
}
else
{
$rowsPerPage =10;
}
$pageNum = 1;
$mxpg=ceil($numrows/$rowsPerPage);
if($_REQUEST['pageNum']=='undefined' || $_REQUEST['pageNum']=='' || $_REQUEST['pageNum']==0 || ($_REQUEST['pageNum']>$mxpg) )
{
$pageNum=1;
}
else
{
if(isDigit($_REQUEST['pageNum']))
$pageNum=$_REQUEST['pageNum'];
else
$pageNum=1;
}
$offset = ($pageNum - 1) * $rowsPerPage;
$sqlal = $SQL_QUERY." limit $offset,$rowsPerPage;";
$resal=mysql_query($sqlal);
if(db_num_rows($resal)==0 && $pageNum > 1)
{
$pageNum = $pageNum - 1;
$offset = ($pageNum - 1) * $rowsPerPage;
$sqlal = $SQL_QUERY." limit $offset,$rowsPerPage;";
$resal=mysql_query($sqlal);
}
$maxpage=ceil($numrows/$rowsPerPage);
$othrparameter="rowsperpage=$rowsPerPage&frmdate=$frmdate&todate=$todate&srchcity=$srchcity"; //serch criteria if any
$tmpnavi=getnevigationhtml($pageNum,$maxpage,$file,$othrparameter);
$onlynum='"Numbers"';
$resultal = mysql_query($sqlal);
}
在PHP表单上显示如下:
<table width='100%'><tr>
<td align='left' >Rows : <input type='text' name='rowsperpage' id='rowsperpage' size='5' value='<?php echo $rowsPerPage;?>' onkeypress='return inputLimiter(event,<?php echo$onlynum;?>)' >
Go To Page: <input type='text' name='pageNum' id='pageNum' size='5' value='<?php echo $pageNum;?>' onkeypress='return inputLimiter(event,<?php echo$onlynum;?>)' >
<input type='submit' name='show' id='show' value='Show' >
</td>
<td align='left'><?php echo "Total :".$numrows;?></td>
<td align='right'><?php echo $tmpnavi; ?></td></tr></table>
您的记录提取将如下所示:
if($numrows>0){
while($res_image = mysql_fetch_array($resultal)){
//Your operations
}
}