2010-01-26 42 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

相關問題