如何使用PHP在表中创建编号列表

时间:2014-06-27 22:20:15

标签: php mysql list numbers

我在表格中执行此类代码。

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创建此功能有任何想法吗?

3 个答案:

答案 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>";