2012-08-25 66 views
3

我有下面的代碼獲取一行:mysqli的獲取數組第n行

$query = "SELECT * 
      FROM translations 
      WHERE iddoc = '$id' 
      AND submitted = 1;"; 
$result = mysqli_query($query); 
$row = mysqli_fetch_array($result); 

我知道這是非常有用的,而循環,在這裏你可以結果只是循環。

但我需要能夠抓住符合此條件的特定行。下面的東西這個僞代碼:

$query = "SELECT * 
      FROM translations 
      WHERE iddoc = '$id' 
      AND submitted = 1;"; 
$result = mysqli_query($query); 
$arrayofrows = mysqli_fetch_arrayofrows($result); 
$arrayofrows[0] //(to get the first row) 
$arrayofrows[1] //(2nd row) 

等等...

我怎樣才能做到這一點?

+1

爲什麼不把附加條件放在Where子句中? – MimiEAM

+0

這是最好的(唯一)方法嗎?我無法返回所有結果的數組? –

+2

[http://www.php.net/manual/en/mysqli-result.fetch-all.php](http://www.php.net/manual/en/mysqli-result.fetch-all.php ),我想這應該有助於 – Hawili

回答

5

你可以嘗試這樣的事情

$arrayofrows = array(); 
while($row = mysqli_fetch_array($result)) 
{ 
    $arrayofrows = $row; 
} 

現在你可以有

$arrayofrows[0] //(to get the first row) 
$arrayofrows[1] //(2nd row) 
+0

OOOH這是sneaaaky。我甚至可以將其命名爲一項功能並在全球範圍內使用。 –

1

這取決於你是否需要對整個結果集返回或沒有,但我覺得LIMIT可以像使用:

$query = "SELECT * 
      FROM translations 
      WHERE iddoc = '$id' 
      AND submitted = 1 LIMIT 200,200;"; 

。否則別人說你會需要轉換爲一個數組(這是什麼fetch_all),然後從該數組中獲取元素。

2

我認爲你正在尋找的功能是mysqli_fetch_all,如下圖所示。這避免了創建額外的循環結構或者執行已經提供的功能的需要。

$query = "SELECT * 
      FROM translations 
      WHERE iddoc = '$id' 
      AND submitted = 1;"; 
$result = mysqli_query($query); 
$arrayofrows = mysqli_fetch_all($result); 
$arrayofrows[0] //(to get the first row) 
$arrayofrows[1] //(2nd row)