0

mysqlデータベースにもっと多くのデータがあります。データを表示したいのですが、10ページごとに表示する必要があるデータだけです。このためにページネーションコードを記述しました。それは非常にうまく機能していますが、そのページ付けを自動的に実行したいのですが、数秒後に自動的にページが2ページ目、次に3ページ目などに変わります...しかし、実装方法がわかりません。誰かを助けてください。以下に参照用のサンプルコードを示します。

    <?php
include "config.inc";

$sql = "SELECT COUNT(*) FROM test";
$result = mysql_query($sql) or trigger_error("SQL", E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];


$rowsperpage = 3;

$totalpages = ceil($numrows / $rowsperpage);


if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {

$currentpage = (int) $_GET['currentpage'];
} else {

$currentpage = 1;
}


if ($currentpage > $totalpages) {

$currentpage = $totalpages;
} 
if ($currentpage < 1) {

$currentpage = 1;
} 


$offset = ($currentpage - 1) * $rowsperpage;


$sql = "SELECT * FROM test LIMIT $offset, $rowsperpage";
$result = mysql_query($sql) or trigger_error("SQL", E_USER_ERROR);


while ($list = mysql_fetch_array($result)) {

echo $list['mark_cut_weld'] . " : " . $list['mark_cut_inves'] . "<br />";
} 


$range = 3;


if ($currentpage > 1) {

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";

$prevpage = $currentpage - 1;

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";
} 


for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {

if (($x > 0) && ($x <= $totalpages)) {

if ($x == $currentpage) {

 echo " [<b>$x</b>] ";

} else {

 echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
} 
} 
} 


if ($currentpage != $totalpages) {

$nextpage = $currentpage + 1;

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";
} 
?>

上記のコードでは、phpによってmysqlデータベースからデータをフェッチするだけです。次に、ページあたりのデータを3に設定します。合計数を取得し、行数でページあたりの行に分割します...その後、自動的にデータが表示されます。

私の目標はデータベースからのデータを表示することです。ページごとに10個のデータが表示され、自動的に次のページに移動して次の10個のデータが表示されます。クリックまたは送信する必要はありません...ステータスボードプログラムであるため、工場で大型テレビで表示します...この大きなテレビでの仕事の状況。

4

2 に答える 2

2

次のページにリダイレクトするヘッダー リダイレクトを設定できます。

たとえば、次のコードは 10 秒で次のページにリダイレクトします。

header('Refresh: 10; URL='.$_SERVER['PHP_SELF'].'?page='.$next_page);

PHP で何かをエコーする前に、必ずヘッダーを設定してください。

于 2013-03-15T07:29:32.603 に答える
0

javascriptを使用して、場所を次のページに頻繁にリダイレクトするタイムアウトを設定する必要があります。

たとえば、これをHTML本文の下部に追加します。

<script type="text/javascript">
    function switchPage(){
        window.location = "<?php echo $next_page?>"; // set the next page of results to view.
    }

    setTimeout(switchPage,60*1000); // call callback every minute
</script>

変数$next_pageは、PHPを使用した次の結果セットへのURLである必要があります。

これを繰り返すには、結果の終わりに達したときにページ0に戻るPHP側のモジュラスが必要になります。

<?php
$next_page_count = ++$currentpage % $totalpages;
$next_page = $_SERVER['PHP_SELF'] . '?currentpage=' . $next_page_count;
于 2013-03-15T07:18:30.733 に答える