首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP从多个表中选择并一起添加值以获得总计

PHP从多个表中选择并一起添加值以获得总计
EN

Stack Overflow用户
提问于 2014-01-23 22:02:30
回答 2查看 69关注 0票数 0

我试图在PHP中将这些查询运行到mysql表中

代码语言:javascript
复制
$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查询如下所示:

代码语言:javascript
复制
SELECT * from extension_voicemail where extension_id = '1454' 

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

但是,当我回显$voicemail_size_total变量时,它没有显示任何内容。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-23 22:15:35

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

票数 1
EN

Stack Overflow用户

发布于 2014-01-23 22:31:29

这取决于您想要实现的目标: 1.如果您想获得所有文件大小的总和(基本地说,您希望只显示一个值),请尝试如下:

代码语言:javascript
复制
$sql="SELECT * from customer where customerid > '' and voicemail_max > '' and company_status = '' ";
$rs=mysql_query($sql,$conn);
$voicemail_size_total=0;
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);
            while($result4=mysql_fetch_array($rs4)) {
                $voicemail_size_total = $voicemail_size_total+$result4["filesize"];
            }
        }
    }
}
echo $voicemail_size_total;
  1. 如果您正在寻找每个客户的文件大小(即。预期将呈现一系列文件大小),请尝试如下:

代码语言:javascript
复制
$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);
    $voicemail_size_total=0;
    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);
            while($result4=mysql_fetch_array($rs4)) {
                $voicemail_size_total = $voicemail_size_total+$result4["filesize"];
            }
        }
    }
    echo $voicemail_size_total;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21320255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档