ページネーションが機能しない理由を見てみましょう?
$sql_AZSQD= "select * from s_QZJX_AZSQD where ejdwbm= '$coid ' and substr(sblbdm,1,2)= '$id ' order by sqdbh desc "; == " ") { $page = 0; }
$count=10; // 合計レコード数を一時的に 10 として書き込みます
$i=$count-1; 2;
$start = $page * $msgnum;
$end = $start + $msgnum;
$end=$i; i/$ msgnum;
if ($page> $totalpage) { $page = $totalpage; }
if ($totalpage>round($totalpage)){$totalpage=round($totalpage)+1; }
else{$totalpage=round($totalpage);}
if ($page> 0){$row=$page*$msgnum + 1;}
if ($row== " " ) {$ row=1;}
?>
for ($i=$start; $i {
//これが読み取りレコードです
}
$pagestr= " ";
if ($page> 0) $pagestr=$pagestr. "
前のページ
- "; 🎜> $ pagestr=$pagestr. "[th ";
for ($i=0; $i if ($i!=$page) { $ pagestr = $ pagestr.($i+1)." } else{
$pagestr = "
" ). " }
} $pagestr=$pagestr. " Page] "; if ($page
次のページ
"; echo "Total ".$totalpage. " Page ".$pagestr;
これでページングは使いやすくなりましたが、すべてのデータが最初のページで読み取られます。どうすればデータをセグメント化できますか?これは oracle 操作であるため、limit は使用できません。これを使用してデータをセグメント化したいのですが、どなたか助けていただけますか。
-----解決策---------adodb を使用すると非常に便利です
------解決策---------
select * from (select rownum rm,s_QZJX_AZSQD. * from s_QZJX_AZSQD) where s_QZJX_AZSQD.ejdwbm= '$coid ' and s_QZJX_AZSQD.substr(sblbdm,1,2)= '$id ' and rm> =1 and rm ------解決策---------
汎用性のないものは使用しないでください。
MySQL を使用している場合は、伝説のページング関数 - 制限を使用してください。 !
MSSQL またはその他のデータベースの場合は、ページングにモザイク select ステートメントを使用してください。きっとお楽しみいただけるでしょう! ふふ、具体的な方法は発表するのではなく、発表しないだけですよ~ 関数を書き終わったら、まとめて投稿します。
------解決策---------
"最初のページのデータをすべて読み込む"配列計算の開始と終了の添字を保存した方が良いでしょうか?」
------解決策------
$totalpage=$i/$msgnum if ($page> $totalpage) { $page = $totalpage; }
if ($totalpage>round($totalpage)){$totalpage=round($totalpage)+1;} else{ $ totalpage=round($totalpage);}
\\\\\\\\\\\\\\\
ここでも、$ には小数が入ります。
$totalpage=ceil($i/$msgnum);
if ($page> $totalpage) { $page = $totalpage; > ====== ===========================