1

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>"; 

} 
4

4 に答える 4

2

毎回すべてのレコードをフェッチするのではなく、行数のカウントを使用する必要があることを示唆する 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>&nbsp;<br />";
}
于 2012-06-26T11:06:16.047 に答える
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 {[オフセット,] 行数 | row_count OFFSET オフセット}]

あなたのSQLは次のようでなければなりません:

$sql="select [..] from [...] where [...] LIMIT ".(10*$page-1).",".(10*$page)-1;

for $page=1-> LIMIT 0,9 for $page=2-> LIMIT 10,19 ...

1 2 3 4 5 ...を入れるのは簡単です

for($i=1;$i<=$pageno;$i++){
     echo "<a href=\"page_with_results.php?page=".$i·"\">".$i."</a>";
}
于 2012-06-26T11:05:47.530 に答える
0

mysql_num_rows() 関数は no を返します。次のクエリの行の $pageno=$num/10 は、番号を除算するだけです。10 によって返される行数。

詳細については、http://www.w3schools.com/php/func_mysql_num_rows.aspをクリックしてください。

于 2012-06-26T11:06:47.093 に答える
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;?>)' >&nbsp;
Go To Page: <input type='text' name='pageNum' id='pageNum' size='5' value='<?php echo $pageNum;?>' onkeypress='return inputLimiter(event,<?php echo$onlynum;?>)' >&nbsp;

<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
}
}
于 2012-06-26T11:12:55.117 に答える