PHP每次创建新div时的增量编号

时间:2011-05-29 20:18:42

标签: php mysql html increment ranking

基本上我有一个PHP脚本为数据库中的每个项目创建一个div,但我希望在每个创建的div中都有一个“rank”数字,即:

-----------------
Rank: 1      < div 1
-----------------
Rank: 2      < div 2
-----------------
Rank: 3      < div 3
-----------------

等等..

这是我目前的代码......

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

    $name = stripslashes($row['name']);
    $description = stripslashes($row['description']);
    $votes = stripslashes($row['votes']);
    $id = ($row['id']);
    $link = ($row['link']);
    $rank = 0;
    ?>

    <div class="site" id="site">
    <u><center>
    <strong><a href="<?php echo $link ?>" target="_blank"><?php echo $name; ?></a></strong></u>
    </font></center>
    <p>Rank:<?php echo $rank++ ; ?></p>
    <p><b><?php echo $description; ?></b><br />
    Votes:<b> <?php echo $votes; ?></b><br />
    </p>
    </div>

   <center>
    <?php
}
?>

但这不起作用,我们将非常感谢任何帮助。 (此外,div继续多页)。

4 个答案:

答案 0 :(得分:1)

$rank = 0;置于循环之外。否则它将始终为0.

答案 1 :(得分:1)

您在循环中定义$rank - 变量,因此在每个循环中,它都使用值0定义。在循环外定义计数器变量并在循环中增加它。

答案 2 :(得分:1)

Rank必须在循环之外,否则每次都会将其重置为0

$rank = 0;
while($row = mysql_fetch_array($result)) {

    $name = stripslashes($row['name']);
    $description = stripslashes($row['description']);
    $votes = stripslashes($row['votes']);
    $id = ($row['id']);
    $link = ($row['link']);
    ?>

    <div class="site" id="site">
    <u><center>
    <strong><a href="<?php echo $link ?>" target="_blank"><?php echo $name; ?></a></strong></u>
    </font></center>
    <p>Rank:<?php echo $rank ; ?></p>
    <p><b><?php echo $description; ?></b><br />
    Votes:<b> <?php echo $votes; ?></b><br />
    </p>
    </div>

   <center>
    <?php
     $rank++;
}
?>

其他评论:

使用偏移量,例如

$result_per_page = 5; // this is the number of result you show per page
$offset = isset($_GET['id'])? (int)$_GET['id'] : 1;
$rank = $offset * $result_per_page;

答案 3 :(得分:1)

$rank需要在while语句之外定义。每次循环时它都会重置为零。此外,在其他地方增加$rank - 它使代码更加健壮和可理解。