Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计数操作前如何检查?_Php_Mysql_Count_Sum - Fatal编程技术网

Php 计数操作前如何检查?

Php 计数操作前如何检查?,php,mysql,count,sum,Php,Mysql,Count,Sum,1) 我有一个名为“plan\u info\u upload”的表,如下所示: site_id site_name 2G_bw 3G_bw route_path 1 MBCGP1 11 0 abc>bcd>cde 2 BOPBG2 12 22 mnl>khl>jhg 3 BOPCB1 11 0 abc>bcd>khl&g

1) 我有一个名为“plan\u info\u upload”的表,如下所示:

site_id site_name   2G_bw   3G_bw   route_path
1       MBCGP1      11      0       abc>bcd>cde
2       BOPBG2      12      22      mnl>khl>jhg
3       BOPCB1      11      0       abc>bcd>khl>bbo
4       BOSBB1      0       25      bops>doc>abc>bcd>jkl
我必须找到从routh_路径一个唯一跳的2g和3g带宽以及2g和3g总带宽。但如果它的2G_bw或3G_bw为零,则不计算它。但我不知道如何在计数之前检查它的值是否为0

我的代码在这里:

<?php
    $unique_hop=$_POST['unique_hop']; 
    $i = 0;
    $sql4 = "SELECT COUNT(2G_bw) AS no_of_2G, SUM(2G_bw) AS total_2G_bw, COUNT(3G_bw) AS no_of_3G, SUM(3G_bw) AS total_3G_bw FROM plan_info_upload WHERE route_path LIKE '%$unique_hop%'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0)
    {
        while($row = $result->fetch_assoc()) 
        {
            $no_of_2G = $row['no_of_2G'];
            $total_2G_bw = $row['total_2G_bw'];
            $no_of_3G = $row['no_of_3G'];
            $total_3G_bw = $row['total_3G_bw'];
            ?>

            <tr>
                <td><?php echo ++$i;?></td>
                <td><?php echo $unique_hop;?></td>
                <td><?php echo $no_of_2G;?></td>
                <td><?php echo $total_2G_bw;?></td>
                <td><?php echo $no_of_3G;?></td>
                <td><?php echo $total_3G_bw;?></td>
            </tr>
            <?php
        }
    }
?>
但产出是这样的:

unique_hop     no_of_2G   total_2G_bw   no_of_3G   total_3G_bw
abc>bcd        3          22            3          25
那么如何在计数操作之前进行检查呢?请任何人帮我解决这个问题。

试试这个:

SELECT COUNT(nullif(2G_bw, 0)) AS no_of_2G, SUM(2G_bw) AS total_2G_bw, COUNT(nullif(3G_bw, 0)) AS no_of_3G, SUM(3G_bw) AS total_3G_bw FROM plan_info_upload WHERE route_path LIKE '%$unique_hop%'";
SELECT COUNT(nullif(2G_bw, 0)) AS no_of_2G, SUM(2G_bw) AS total_2G_bw, COUNT(nullif(3G_bw, 0)) AS no_of_3G, SUM(3G_bw) AS total_3G_bw FROM plan_info_upload WHERE route_path LIKE '%$unique_hop%'";