如何在mysqli和php中通过循环返回平均数据

如何在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

我是一个初学者程序员,我想获取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";
$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();
?>