2010-01-26 62 views
0

我尝试下面的代码如何从mysql获取第n行的值?

$sql=mysql_query("SELECT * FROM `user`"); 
$result=mysql_result($sql, 6); 
echo $result; 

它返回第7行的第一个字段的值。但它的工作很好,直到第9行。之后它又从1返回。所以任何人请帮助..我怎么能从MySQL中获得第n行的价值。

感谢你。

[email protected]

回答

1
$i=6;  
if (!mysql_data_seek($sql, $i)) { 
     echo "Cannot seek to row $i: " . mysql_error() . "\n"; 
} 

然后用像mysql_fetch_array

4

任何传统的方法,你可以指定一个从您的查询也使用LIMIT子句:

$sql=mysql_query("SELECT * FROM `user` limit 6, 1"); 

这会给你的第7条记录,因此你可以在那里指定任何数字。

+0

您如何确定标识将在订单流像1> 2> 3> ... 50> 51> ... 它也可以打破秩序......然后? – 2010-01-27 18:04:13

+0

@SumanBiswas如果您删除第一行,旧的第二行是新的第一行。你不能告诉我你要求我们向你提供'WHERE id = 6'? – Alexander 2014-01-28 14:25:53

3

请注意,您无法保证订单的可靠性,除非您实际使用ORDER BY子句定义应该如何排序行。您可能会按照它们插入表格的顺序返回行。有很多事情可能导致这种“默认顺序”发生变化。除非你真的了解发生了什么,否则这是一个非常糟糕的主意。

下面是一个按名字排序记录的示例。这可能不是一个很好的列来排列行,但我们不太了解您的表模式或需求来建议。

$result = mysql_query("SELECT * FROM `user` order by firstname desc limit 6,1"); 
print_r(mysql_fetch_assoc($result)); 
+0

你为什么在订购时想到这个ID!如果我删除任何一行,它会破坏顺序..并且错误将会出现 – 2010-01-27 18:06:57