提问人:Athveia 提问时间:4/21/2019 更新时间:4/21/2019 访问量:76
在循环中从 MySQLi 查询打印编号关联数组
Printing Numbered Associative Array from MySQLi query in a Loop
问:
我通过方法调用了一个平均的MySQL数据。我通过 中的关联数组获取数据。这导致数据具有以下格式,并作为键。$conn -> query
mysqli_fetch_assoc
Array ( [AVG(jwb1)] => 5 [AVG(jwb2)] => 5 [AVG(jwb3)] => 4.666666666666667)
AVG[jwb1]
我想使用循环可视化 HTML 表格中的所有数据。问题是:
- 如何遍历密钥(我猜它需要一个循环),以便它会调用右行的值?
for
- 我想将小数点四舍五入为 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 |
答:
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 位
评论