数字行不是列ID

时间:2009-02-22 21:04:07

标签: php

    $query = mysql_query("
    SELECT * FROM comments
    ORDER BY comments.comment_date ASC");

    while ($row = mysql_fetch_assoc($query)) {
    .......
    }

我如何“对”评论进行“编号”。

喜欢 this site

你知道吗......

1。
2.
3.
4.
5.
...

由于

4 个答案:

答案 0 :(得分:3)

$i = 0;
while ($row = mysql_fetch_assoc($query)) {
   $i++;
   print $i; 
   .......
}

您可以计算您的周期,因此您获得与数据库无关的一致编号! =)

答案 1 :(得分:3)

您还可以使用订货人列表(OL元素)。

答案 2 :(得分:0)

$query = mysql_query("
SELECT * FROM comments
ORDER BY comments.comment_date ASC");
$num = 1;
while ($row = mysql_fetch_assoc($query)) {
    echo $num++;
    .......
}

答案 3 :(得分:0)

不可否认,我在MS SQL中的背景比MySQL更多,但听起来你正在寻找一种方法来完成ROW_NUMBER()(msdn article)在MS SQL 2005中完成的工作。在2005年之前,编号结果行的方法是通过创建存储过程来返回表变量(或临时表)来完成的。因此,您将创建表的临时表示形式,包括RowNum的新列,并使存储过程返回新表。例如......

这些是MS SQL命令,但我认为MySQL类似

CREATE TABLE @TempComments
(
    RowNum smallint not null IDENTITY(1,1),
    ...other fields...
)

INSERT INTO @TempComments (all fields except RowNum)
SELECT * FROM comments

让存储过程返回@TempComments到您的应用程序,现在您有一个注释表,每行有一个连续的行号。

看起来MySQL在5.0版本中实现了存储过程,所以希望这就是你正在使用的。

希望有所帮助,其他人可以随意添加正确的MySQL语法。