在循环中从 MySQLi 查询打印编号关联数组

Printing Numbered Associative Array from MySQLi query in a Loop

提问人:Athveia 提问时间:4/21/2019 更新时间:4/21/2019 访问量:76

问:

我通过方法调用了一个平均的MySQL数据。我通过 中的关联数组获取数据。这导致数据具有以下格式,并作为键。$conn -> querymysqli_fetch_assocArray ( [AVG(jwb1)] => 5 [AVG(jwb2)] => 5 [AVG(jwb3)] => 4.666666666666667)AVG[jwb1]

我想使用循环可视化 HTML 表格中的所有数据。问题是:

  1. 如何遍历密钥(我猜它需要一个循环),以便它会调用右行的值?for
  2. 我想将小数点四舍五入为 2 精度。我应该把命令放在哪里?round()

我尝试了以下代码:

//INVOKING RESULT

$nilai = $conn->query("SELECT AVG(jwb1), AVG(jwb2), AVG(jwb3) from tb_transaksi_jwb where id_mk= '$id_mk'");

//INSERTING VALUE TO ROWS BY FOR/WHILE LOOP

<?php

//looping assoc array

while ($rownilai = mysqli_fetch_assoc($nilai)) {
    for($no = 0; $no<8; $no++){
?>

<tr>
   <td>Soal <?= $no; ?></td>
   <td><?= $rownilai['AVG(jwb$no)']; ?></td>
   // I intended to get result of each $rownilai['AVG(jwb1)'],
   // $rownilai['AVG(jwb2)'] etc
</tr>

<?php
      }
   }
?>

但是给出错误。预期结果:undefined index

----------------------------
|Key            |Value     |
----------------------------
|AVGJwb1        |5         |
|AVGJwb2        |4,6       |
|AVGJwb3        |5         |
PHP 数组 循环 mysqli

评论


答:

0赞 Saji 4/21/2019 #1

为所有平均列指定别名,并使用该键打印值。见下文,

$nilai = $conn->query("SELECT AVG(jwb1) AS jwb1_avg, AVG(jwb2) AS jwb2_avg, AVG(jwb3) AS jwb3_avg from tb_transaksi_jwb where id_mk= '$id_mk'");

然后你可以像 , , 一样打印<?= $rownilai['jwb1_avg']; ?><?= $rownilai['jwb2_avg']; ?><?= $rownilai['jwb3_avg']; ?>

0赞 John Carpenter 4/21/2019 #2

您需要使用点运算符将数组键名的两个部分连接在一起,因此请替换该行<td><?= rownilai['AVG(jwb$no)']; ?></td>

<td><?= round($rownilai['AVG(jwb.$no)'],2); ?></td>

它还执行四舍五入到小数点后 2 位