我在表格中执行此类代码。
while($row = mysql_fetch_array($result))
{
echo "" . $row['id'] . "";
echo "" . $row['name'] . "";
echo "" . $row['car'] . "";
}
哪个很好用,并给我一个编号列表(1 Mike Volvo,2 Mike Ford)。问题是我现在在同一个表中有多个用户,因此列表中存在其他人输入的空白,因为我使用自动递增的ID来表示数字。
所以假设我有5个条目,我显然希望它是1-5,但现在它是5-30-45-65或其他。
无论如何,我四处寻找解决方案,我发现$number = 1; $number++;
有效并且它有点工作,给我一个1-5列表,不论ID是什么。
问题在于,当我使用ORDER BY xxx desc
反转列表时,最后一个条目变为1,第一个条目变为5.但我总是希望第一个条目保持为1,最后一个条目为5。
您对如何使用PHP创建此功能有任何想法吗?
答案 0 :(得分:2)
您需要使用简单的用户$number
,如下面的代码所述
$number = 1;
while($row = mysql_fetch_array($result))
{
echo $number;
echo "" . $row['name'] . "";
echo "" . $row['car'] . "";
++$number;
}
即使你的SQL中有order by
,在这种情况下也没关系。
答案 1 :(得分:0)
根据我对您的问题的理解......您使用以下代码在正确的轨道上......
$LastId ='';
$number = 0;
while($row = mysql_fetch_array($result))
{
if($LastId != $row['id']){
$number++;
}
echo $number;
echo "" . $LastId = $row['id'] . "";
echo "" . $row['name'] . "";
echo "" . $row['car'] . "";
}
所以... 如果'id'与最后'id'(不是同一个用户)不同,它将增加1.否则它将保持不变。
希望这是你寻找和帮助的。
答案 2 :(得分:-1)
虽然这在php中非常简单,但我不会使用php。您可以在html中轻松完成此操作:
echo "<ol>";
while($row = mysql_fetch_array($result))
{
echo "<li>" . $row['name'] . $row['car'] . "</li>";
}
echo "</ol>";