5

我有以下获取单行的代码:

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

我知道这在 while 循环中很有用,您可以在其中循环遍历结果。

但我需要能够抓取满足此条件的特定行。这个伪代码后面的东西:

$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)

等等...

我怎样才能做到这一点?

4

3 回答 3

7

你可以试试这样的

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

你现在可以拥有

$arrayofrows[0] //(to get the first row)
$arrayofrows[1] //(2nd row)
于 2012-08-25T23:15:43.310 回答
3

我认为您正在寻找的功能是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)
于 2014-02-20T23:24:06.647 回答
2

这取决于您是否需要返回整个结果集,但我认为 LIMIT 可以像这样使用:

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

否则,正如其他人所说,您将需要转换为数组(这就是这样fetch_all做的),然后从该数组中获取元素。

于 2012-08-25T23:15:07.583 回答