2011-05-29 57 views
1

基本上我有一个PHP脚本为数据库中的每个项目创建一个div,但是我想在创建的每个div中都有一个“排名”编号,即:PHP增量编号,每次创建一个新的div

----------------- 
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在多个页面上继续)。

+1

您每次循环时都将$ rank设置为0。另外,你可能需要在echo之外做$ rank ++ - 我不确定$ rank ++实际上是否返回新的数字(但不要在此引用我) – 2011-05-29 20:21:11

+0

不需要将它放在echo之外,但确实初始化应该发生在循环之外。仅供参考:'$ var ++'返回预先递增的值,'++ $ var'返回后递增的值。 – Wrikken 2011-05-29 20:23:07

+0

因此,然后回声$ rank ++会在每次循环时回显0 0 – 2011-05-29 20:24:26

回答

1

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

1

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

1

等级必须是外循环,否则您将其重置为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; 
+0

谢谢,工作的魅力,但现在我有这个问题.... http://aviatex14.co.uk/webmash/ top.php(点击下一步,看看等级发生了什么) – AviateX14 2011-05-29 20:31:30

+0

我添加了一个更新到我的答案。这将帮助你抵消每一页 – Ibu 2011-05-29 20:40:13

+0

对不起,如果我成为一个痛苦,但我不知道在哪里使用该代码,因为我*认为*它与一些其他代码相矛盾,这是整个事情的PHP(The矛盾的位正好在SQL连接之下)http://pastebin.com/5Q62Zv1N – AviateX14 2011-05-29 20:55:48

1
需要在 while声明之外定义

$rank。每次它循环它重置为零。另外,在其他地方增加$rank - 它使代码稍微更健壮和易懂。

相关问题