我有一个复杂的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行开始。
此外,我不想进行双重查询,因为查询太大了。
还有其他方法吗?
答案 0 :(得分:0)
你可以:
a)将整个结果集吸入客户端缓冲区,例如
$data = array();
while($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
然后从该数组中提取你的标题。
b)seek
使用mysqli::data_seek()返回结果集的开头。但是,并非所有结果集都是可寻找的。 p>
答案 1 :(得分:-1)
做一个简单的计数。如果您在第一行,则获取/输出您的标题。
$data = array();
$i = 1;
while($row = mysqli_fetch_assoc($result)) {
if ( $i == 1 ) {
// do stuff
}
$data[] = $row;
$i++;
}