如何从每个循环的mysql_fetch_array的while循环中获取行号?

时间:2013-11-29 03:41:16

标签: mysql while-loop

我有一个简单的while循环

while($row = mysql_fetch_array($result)){

}

它逐个取出很多行,很好。 但我根据行号添加了一些额外的功能。

  • 当行号= 1(第一行)-do something
  • 当行号= 2(第二行)时 - 新的东西

我怎样才能得到每行的ROW NUMBER?

3 个答案:

答案 0 :(得分:2)

添加计数变量:

$count = 1;
while ( $row = mysql_fetch_array( $result ) ) {
    // do your work here
    $count++;
}

答案 1 :(得分:1)

您必须在选择的SQL中包含行号。所以更新了获取行的MySQL SQL语句,包括行号,如下所示。

select @rownum:=@rownum+1 ‘row_number’, * from your_table, (SELECT @rownum:=0) r 

这将创建一个变量rownum,初始化为值0&每个记录增加1。每个row都会有一个名为row_number的列,其中的升序号从1开始。

然后在while... loop检查此row_number值并进行相应处理。

参考:See this post for another approach that involves creating a separate variable in SQL statement

答案 2 :(得分:0)

在名为row的选择中添加一个额外字段,如下所示

SELECT @row:=IFNULL(@row,0)+1 as row,
       your_columns
  FROM your_tables