如何显示变量的每个数字?

时间:2012-08-28 14:58:30

标签: php mysql numbers paging

基本上我想要的是显示一个计数,直到它达到一定数量,所以如果我有数字" 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"显示在屏幕上,但我希望每个数字都是一个链接。

我该怎么做?

由于 本

3 个答案:

答案 0 :(得分: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)));

打印something like this

1 | 2 | 3 | 4 | 5

答案 1 :(得分:3)

使用for循环。

for($i = 1; $i <= $num_pages; $i++){
    echo '<a href="page.php?page='.$i.'">'.$i.'</a> ';
}

答案 2 :(得分:2)

使用循环:

for($i = 0; $i < $num_pages; ++$i) {
  printf('<a href="?page=%d">page %d</a>', $i, $i);
}