如何在mysqli和php中通过循环返回平均数据
我是一个初学者程序员,我想获取while循环创建的每一行中的AVG()数据, 这是代码如何在mysqli和php中通过循环返回平均数据,php,mysqli,Php,Mysqli,我是一个初学者程序员,我想获取while循环创建的每一行中的AVG()数据, 这是代码 <?php $sql = "SELECT sites_id, sites_nama, sites_alamat, sites_kota_kabupaten, perpanjangan_pagu, sites_tanggal_start, sites_tanggal_finish, perpanjangan_invoice, AVG(perpanjangan_pagu) FROM site"; $res
<?php
$sql = "SELECT sites_id, sites_nama, sites_alamat, sites_kota_kabupaten, perpanjangan_pagu, sites_tanggal_start, sites_tanggal_finish, perpanjangan_invoice, AVG(perpanjangan_pagu) FROM site";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table>
<tr>
<th>Site ID</th>
<th>Site Name</th>
<th>Alamat</th>
<th>Kab.Kota</th>
<th>Pagu</th>
<th>Harga Rata Rata</th>
<th>Awal Kontrak</th>
<th>Akhir Kontrak</th>
<th>Invoice</th>
</tr>";
// output data of each row
$rows = array();
while ($row = $result->fetch_assoc()) {
$rows = $row["AVG(perpanjangan_pagu)"];
echo "
<tr>
<td>" . $row["sites_id"] . "</td>
<td>" . $row["sites_nama"] . "</td>
<td>" . $row["sites_alamat"] . "</td>
<td>" . $row["sites_kota_kabupaten"] . "</td>
<td>" . $row["perpanjangan_pagu"] . "</td>
<td>" . $rows . "</td>
<td>" . $row["sites_tanggal_start"] . "</td>
<td>" . $row["sites_tanggal_finish"] . "</td>
<td>" . $row["perpanjangan_invoice"] . "</td>
</tr>";
}
echo "</table>";
}
else {
//echo "0 results";
}
$conn->close();
?>
这是图像,你可以看到它只返回一行
这是我删除avg函数时的图像
请帮助我获取表中每一行的平均数据,而不仅仅是一个表
谢谢。你能试试这个吗?我已经修改了用户代码并添加了AVG()列
你能试试这个吗?我已经修改了用户代码并添加了AVG()列
使用$rows[]=$row[“平均值(perpanjangan_pagu)”代码>而不是$rows=$row[“平均值(perpanjangan_pagu)”代码>您可以使用print\r($rows)进行检查代码>在循环外。但是如果我想在循环创建的行内打印它呢?如您所见,当我删除AVG函数时,它们可以正确打印整行,但当我使用AVG时,它们只显示一行我认为$row[“AVG(perpanjangan_pagu)”]
这只是一个值,因此您可以在
中直接使用它是的,但它仍然相同,它只返回一行,而不是全部3行,我需要获取loopok创建的所有行中的AVG数据,因此您在DB上有3条记录&当您使用AVG()
使用$rows[]=$row[“AVG(perpanjangan_pagu)”]时,您只能得到一条记录代码>而不是$rows=$row[“平均值(perpanjangan_pagu)”代码>您可以使用print\r($rows)进行检查代码>在循环外。但是如果我想在循环创建的行内打印它呢?如您所见,当我删除AVG函数时,它们可以正确打印整行,但当我使用AVG时,它们只显示一行我认为$row[“AVG(perpanjangan_pagu)”]
这只是一个值,因此您可以在
中直接使用它是的,但它仍然相同,它只返回一行,而不是全部3行,我需要获取loopok创建的所有行中的AVG数据,因此您在DB上有3条记录&当您使用AVG()
时,只会得到一条记录。欢迎您在此处提问…:-)欢迎您在这里提问…:-)
<?php
$sql = "SELECT sites_id, sites_nama, sites_alamat, sites_kota_kabupaten, perpanjangan_pagu, sites_tanggal_start, sites_tanggal_finish, perpanjangan_invoice, (SELECT AVG(perpanjangan_pagu) FROM site) AS 'AVG_pagu' FROM site";
$result = $conn->query($sql);
// AVG_pagu has the AVG value of all columns of `perpanjangan_pagu` in table `site`
if ($result->num_rows > 0) {
echo "<table>
<tr>
<th>Site ID</th>
<th>Site Name</th>
<th>Alamat</th>
<th>Kab.Kota</th>
<th>Pagu</th>
<th>Harga Rata Rata</th>
<th>Awal Kontrak</th>
<th>Akhir Kontrak</th>
<th>Invoice</th>
</tr>";
// output data of each row
// $rows = array(); // This is not actually required
while ($row = $result->fetch_assoc()) {
//$rows[] = $row["AVG_pagu"]; // This is not actually required
echo "
<tr>
<td>" . $row["sites_id"] . "</td>
<td>" . $row["sites_nama"] . "</td>
<td>" . $row["sites_alamat"] . "</td>
<td>" . $row["sites_kota_kabupaten"] . "</td>
<td>" . $row["perpanjangan_pagu"] . "</td>
<td>" . $row["AVG_pagu"] . "</td>
<td>" . $row["sites_tanggal_start"] . "</td>
<td>" . $row["sites_tanggal_finish"] . "</td>
<td>" . $row["perpanjangan_invoice"] . "</td>
</tr>";
}
echo "</table>";
}
else {
echo "No records found!";
}
$conn->close();
?>