簡體   English   中英

如何在PHP中匯總多個mysql值

[英]How to sum mysql values in multple while PHP

我想對$ orderfeed_query中的所有行值求和。 但是,當我回顯$ sum時,我僅從上一個循環中獲得總和。

我如何才能在$ sum變量上添加以下所有循環的總和? 我不知道一個訂單有多少個循環。

$checkorder = mysql_query("SELECT * FROM orders WHERE  `email` = '$email' ") or die(mysql_error());
while ($row = mysql_fetch_assoc($checkorder)) {
    $orderid = $row["orderid"];
    $check_order = $row["check_order"];

    if($check_order[0] == 1){

        $orderfeed_query = mysql_query("SELECT * FROM orderfeed WHERE `orderid` = '$orderid' AND `product` = '1'") or die(mysql_error());
        while ($row = mysql_fetch_assoc($orderfeed_query)) {
            $signaturewiz = $row["signaturewiz"];
            $flurstueckwiz = $row["flurstueckwiz"];
            $uploadwiz = $row["uploadwiz"];
            $exsignaturewiz = $row["exsignaturewiz"];
            $ibanwiz = $row["ibanwiz"];

            $sum = $signaturewiz+$flurstueckwiz+$uploadwiz+$exsignaturewiz+$ibanwiz;

            echo $sum;

        }
    }   

}
}   

這段代碼

$sum = $signaturewiz + $flurstueckwiz + $uploadwiz + $exsignaturewiz + $ibanwiz;

每次覆蓋總和。 您必須加總不能覆蓋

$sum += $signaturewiz + $flurstueckwiz + $uploadwiz + $exsignaturewiz + $ibanwiz;

並聲明$sum = 0; 主循環之前

$sum的回顯移到循環外

使用+=而不是+累積多次迭代的總數

在使用+=之前初始化變量,就像$sum具有未定義的值一樣,使用+=時可能會弄亂計數

    $sum = 0;   // init variable
    while ($row = mysql_fetch_assoc($orderfeed_query)) {
        $signaturewiz = $row["signaturewiz"];
        $flurstueckwiz = $row["flurstueckwiz"];
        $uploadwiz = $row["uploadwiz"];
        $exsignaturewiz = $row["exsignaturewiz"];
        $ibanwiz = $row["ibanwiz"];

        $sum += $signaturewiz + $flurstueckwiz + $uploadwiz + 
                $exsignaturewiz + $ibanwiz;
    }
    echo $sum;

附加信息:

您看到的是12,而不是3,因此我假設表中的數據是文本,而不是數字,因此可以將文本數字轉換為整數

    $sum = 0;   // init variable
    while ($row = mysql_fetch_assoc($orderfeed_query)) {
        $signaturewiz   = (int)$row["signaturewiz"];
        $flurstueckwiz  = (int)$row["flurstueckwiz"];
        $uploadwiz      = (int)$row["uploadwiz"];
        $exsignaturewiz = (int)$row["exsignaturewiz"];
        $ibanwiz        = (int)$row["ibanwiz"];

        $sum += $signaturewiz + $flurstueckwiz + $uploadwiz + 
                $exsignaturewiz + $ibanwiz;
    }
    echo $sum;

一些人指出$sum應該在循環之外,這的確是正確的。 但是,MySQL可以為您完成所有這一切:

    $orderfeed_query = mysql_query("SELECT SUM(signaturewiz + flurstueckwiz + uploadwiz + exsignaturewiz + ibanwiz) FROM orderfeed WHERE orderid = '$orderid' AND product = '1'") or die(mysql_error());
    if ($row = mysql_fetch_row($orderfeed_query)) {
        echo $row[0];
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM