У меня есть цикл, который выполняет итерацию через таблицу и отображает идентификатор клиента. Он отлично работает. В верхней части цикла он устанавливает переменную равной идентификатору клиента, а затем выводит ее на экран. Если в таблице указано семь элементов, в них отображаются семь OrderIds.Почему мой запрос 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'];
}
}
?>
Вы показываете ошибки PDO? Вы не можете запустить новый запрос в том же соединении, пока предыдущий не вернет все строки? Может быть, «fetchAll» будет полезен? Хм, какая база данных вы используете? Я предполагаю 'mysql'. Что бы это ни стоило проверить? –
http://php.net/manual/en/pdo.error-handling.php –
Это объясняет это полностью. Мне нужно новое соединение! Спасибо Спасибо! –