2011-05-29 54 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 - 它使代碼稍微更健壯和易懂。

相關問題