为什么我的Sum查询会破坏我的循环?

时间:2015-10-30 19:06:41

标签: php pdo sum

我有一个遍历表的循环并显示客户ID。 它工作正常。在循环的顶部,它将变量设置为等于客户ID,然后将其回显到屏幕。如果表格中有七个项目,则显示七个OrderIds。

但是,如果我然后尝试使用该客户ID执行sum语句,程序会在第一次迭代后显示结果,但在第一次迭代后退出而不会出错,而不是循环,几乎就像记录集是被摧毁。

我完全不知道为什么。代码如下。非常感谢提前:

include ("../Connections/PDOConnection.php")

$Query= "
SELECT distinct
    OrderID,
    CustID,
    Name
FROM
    dbo.JNO_OrderHeader
WHERE
    CustID is Not Null 
";

$stmt = $pdo->prepare($Query);

if ($stmt->execute()) {

    while ($Order=$stmt->fetch(PDO::FETCH_ASSOC)){

        $OrderID = $Order['OrderID'];
        echo "<br>OrderID: " . $OrderID;


        $Query1 = "SELECT SUM(dbo.JNO_OrderDetail.ExtendedPrice) AS TotalOrderPrice 
                   FROM dbo.JNO_OrderDetail 
                   WHERE dbo.JNO_OrderDetail.OrderId = :OrderID";

        $stmt1 = $pdo->prepare($Query1);
        $stmt1->bindValue("OrderID", $OrderID);
        $stmt1->execute();
        $OrderTotal=$stmt1->fetch(PDO::FETCH_ASSOC);    

        echo "<br>Totals for order number ". $OrderID .": " . $OrderTotal['TotalOrderPrice'];
    }
}

?>

1 个答案:

答案 0 :(得分:0)

正如人们所说,错误是什么?

一眼就可以重用$pdo,尝试$pdo1,就像你对循环中的其他变量所做的那样。

无论如何,循环和发出这样的多个SQL语句并不是最佳的。考虑加入并做这样的事情?

SELECT
    oh.OrderID,
    oh.CustID,
    oh.Name
    SUM(od.ExtendedPrice) AS TotalOrderPrice
FROM
    dbo.JNO_OrderHeader oh
LEFT JOIN
    dbo.JNO_OrderDetail od ON od.OrderId = oh.OrderID
WHERE
    oh.CustID IS NOT NULL
GROUP BY 
    oh.OrderID,
    oh.CustID,
    oh.Name