访问数组 - 多个数组

时间:2014-07-02 05:45:38

标签: php arrays mysqli

我有以下内容:

库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

我无法理解为什么会这样。欢迎任何建议和反馈。

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;
}