获取mysqli_fetch_array数据而不“移动”到下一行

时间:2013-12-05 19:00:21

标签: php sql mysqli row

我有一个复杂的SQL查询结果。结果是这样的:

player_id   mail_text   mail_title
1           hello       talking
2           hi          talking
1           how are u?  talking
2           fine!       talking 

现在,我想使用$row=mysqli_fetch_array($result)扫描所有结果并在表行中显示结果,但在循环之前我要输出mail_title。

我不想使用mysqli_fetch_array($result)来显示标题,因为循环将从第2行开始,而不是从第1行开始。

此外,我不想进行双重查询,因为查询太大了。

还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

你可以:

a)将整个结果集吸入客户端缓冲区,例如

$data = array();
while($row = mysqli_fetch_assoc($result)) {
   $data[] = $row;
}

然后从该数组中提取你的标题。

b)seek使用mysqli::data_seek()返回结果集的开头。但是,并非所有结果集都是可寻找的。

答案 1 :(得分:-1)

做一个简单的计数。如果您在第一行,则获取/输出您的标题。

$data = array();
$i = 1;
while($row = mysqli_fetch_assoc($result)) {
    if ( $i == 1 ) {
        // do stuff
    }
    $data[] = $row;
    $i++;
}