-1

基本的には、特定の数に達するまでカウントを表示したいので、画面に数字「5」があれば「1 2 3 4 5」と表示されます。または、数字が「3」の場合、「1 2 3」と表示されます。

その理由は、MySQL の結果のページング システムを作成しているためです。私がこれまでに持っているコードは

$result1 = mysql_query("SELECT * FROM questions WHERE subcat = '$conditions'");
$num_rows = mysql_num_rows($result1);
$results_per_page = "3";
$num_pages = $num_rows / $results_per_page;

したがって、結果がいくつあるかをカウントします。たとえば、12 個の結果があるとします。次に、この数値を、ページごとに表示する結果の数で割ります。この例では「3」です。したがって、答えは「4」です。したがって、「1 2 3 4」を画面に表示したいのですが、各数字をリンクにしたいと考えています。

どうすればいいですか?

ありがとうベン

4

3 に答える 3

5
foreach( range( 1, $num_pages) as $i) {
    echo '<a href="index.php?page=' . $i . '">' . $i . '</a>';
}

または、knittl によって提案されたアプローチ:

echo implode( ' | ', array_map( function( $i) {
    return sprintf( '<a href="index.php?page=%d">%d</a>', $i, $i);
}, range( 1, $num_pages)));

のようなものを出力します

1 | 2 | 3 | 4 | 5
于 2012-08-28T15:00:44.577 に答える
3

for ループを使用します。

for($i = 1; $i <= $num_pages; $i++){
    echo '<a href="page.php?page='.$i.'">'.$i.'</a> ';
}
于 2012-08-28T15:00:33.080 に答える
2

ループを使用します。

for($i = 0; $i < $num_pages; ++$i) {
  printf('<a href="?page=%d">page %d</a>', $i, $i);
}
于 2012-08-28T15:02:05.220 に答える