基本上我有一个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继续多页)。
答案 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
- 它使代码更加健壮和可理解。