Печать нумерованного ассоциативного массива из MySQLi-запроса в цикле - PullRequest
0 голосов
/ 21 апреля 2019

У меня были усредненные данные MySQL, вызванные методом $conn -> query.Я получил данные через ассоциативный массив в mysqli_fetch_assoc.В результате данные имели следующий формат Array ( [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         |

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Вам необходимо объединить две части имени ключа массива, используя оператор точки, поэтому замените строку <td><?= rownilai['AVG(jwb$no)']; ?></td>

на

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

, которая такжевыполняет округление до 2 десятичных знаков

0 голосов
/ 21 апреля 2019

Укажите псевдоним для всех средних столбцов и используйте этот ключ для печати значений. Смотри ниже,

$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']; ?>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...