-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 回答