我有以下内容:
库MySQLi
$query = "SELECT company, AVG(q1) AS high_1 FROM tresults;"
$query .= "SELECT company, AVG(q2) AS high_2 FROM tresults;"
Var Dump
array(2) { ["company"]=> string(8) "7yh6t5rf" ["high_1"]=> string(10) "7.65498709" }
array(2) { ["company"]=> string(8) "de4r5tgh" ["high_2"]=> string(10) "9.12375681" }
代码
if ($mysqli->multi_query($query)) {
do {
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
for ($p=1; $p<=20; $p++)
{
echo"
<td class='a25'>";
echo number_format($row["high_".$p],2);
echo"</td>";
}
$result->free();
}
} while ($mysqli->next_result());
}
/* close connection */
$mysqli->close();
输出
<td class='a25'>7.65</td><td class='a25'></td>
基本上,我遇到的问题是上面的代码只回显high_1
而不是high_2
。
我无法理解为什么会这样。欢迎任何建议和反馈。
答案 0 :(得分:0)
尝试获取数组而不是fetch_assoc
函数(如果已实现),并且可以通过选择索引访问结果行
while ($row = $result->fetch_array()) {
echo "<td class='a25'>",
number_format($row[1],2),
"</td>";
$result->free();
}
答案 1 :(得分:0)
我无法解决问题。
所以,我使用的解决方案之一是简单地将所有内容添加到我可以在while loop
之外使用的单个数组中:
while ($row = $result->fetch_assoc()) {
$array[] = $row;
}