PHP 从多个表中选择并将值相加得到总计

标签 php mysql

我正在尝试在 PHP 中对 mysql 表运行这些查询

$sql="SELECT * from customer where customerid > '' and voicemail_max > '' and company_status = '' ";
$rs=mysql_query($sql,$conn);
while($customer=mysql_fetch_array($rs)) {
    $sql2="SELECT * from client where parent_client_id = '".$customer["customerid"]."' ";
    $rs2=mysql_query($sql2,$pbx01_conn);
    while($result2=mysql_fetch_array($rs2))
    {
        $sql3="SELECT * from extension where client_id = '".substr($result2["id"],1,3)."' ";
        $rs3=mysql_query($sql3,$pbx01_conn);
        while($result3=mysql_fetch_array($rs3))
        {
            $sql4="SELECT * from extension_voicemail where extension_id = '".$result3["id"]."' ";
            $rs4=mysql_query($sql4,$pbx01_conn);
            $voicemail_size_total=0;
            while($result4=mysql_fetch_array($rs4)) {
                $voicemail_size_total = $voicemail_size_total+$result4["filesize"];
            }
        }
    }
    echo $voicemail_size_total;
}

它应该将一列中的多个值相加

$sql4 查询如下所示:

SELECT * from extension_voicemail where extension_id = '1454' 

当我在数据库中运行它时,它返回一行,文件大小列为 31780

但是当我回显 $voicemail_size_total 变量时,它什么也没显示。

如果我从该变量所在的位置回显该变量,但它现在所在的位置没有显示任何内容,它就可以正常工作

最佳答案

在所有 while 循环之外声明 $voicemail_size_total=0;。每次你回到循环时,你都会将其重新设置回 0。这可能就是问题所在。

关于PHP 从多个表中选择并将值相加得到总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320255/

相关文章:

PHP 和 MySQL : Using $_GET ['id' ] to query matching table id

php - 使用 str_replace 而不是正则表达式更改 url 的更好方法

mysql - MySql 索引列可为空

php - 如何在 Laravel 中执行 MYSQL 查询?

php - 调用没有命名空间的静态自动加载类

PHP - 两个 MySQL 连接,只有第二个有效

php - $ _FILES ['file'] ['size']对于上载超过max_filesize的文件,回显0(零)

mysql - SQL : a symbol name was expected

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

mysql - 按复杂顺序排序