У меня есть функция в приложении для электронной коммерции, называемое кредитами магазина (авансовый платеж), в котором клиент может выкупить кредиты магазина, если у него есть на его счету.
Здесь все работает нормально.
Я хочу, чтобы я хотел отображать данные, подобные этому в разделе «Моя учетная запись»:
SC_OC S_OC SC_Amount SC_Alloted SC_Used SC_Balance ORD-0001 -- 1000 1100 0 1100 -- ORD-0001 -- -- 300 800
SC_OC
= Store_Credit_Order_Code
S_OC
= Store_Order_Code
Всякий раз, когда клиент покупает кредиты в магазине, если SC_Alloted
не равен 0
то кредит в магазине будет обновлять его, добавив его. Так будет:
SC_OC S_OC SC_Amount SC_Alloted SC_Curent SC_Used SC_Balance ORD-0001 -- 1000 1100 1100 0 1100 -- ORD-0001 -- -- 1100 300 800 ORD-0002 -- 2500 2800 3600 0 3600
Данные S_OC
и SC_Used
поступают из таблицы orders
а остальные детали поступают из таблицы store_credits_orders
.
Я получаю:
SC_OC S_OC SC_Amount SC_Alloted SC_Curent SC_Used SC_Balance ORD-0001 ORD-0001 1000 1100 1100 0 1100 ORD-0001 ORD-0001 1000 1100 1100 300 800 ORD-0002 ORD-0001 2500 2800 3600 0 3600
Вот код PHP, который я пробовал:
<?php $table = ''; $queryToGetStoreCredit = "SELECT * FROM store_credits_orders sco, orders ord WHERE sco.SCO_CustEmailAdd = '".$_SESSION["Customer"]["email"]."' AND ord.CustEmailAdd = '".$_SESSION["Customer"]["email"]."' AND ord.CustEmailAdd = sco.SCO_CustEmailAdd"; $validate->Query($queryToGetStoreCredit); if ($validate->NumRows() >= 1) { while ($rows_sco = $validate->FetchAllDatas()) { $i = 0; $table .= '<tr>'; $table .= '<td>'.$rows_sco["SCO_OrderCode"].'</td>'; $table .= '<td>'.$rows_sco["OrderCode"].'</td>'; $table .= '<td>'.$rows_sco["SCO_OrderDate"].'</td>'; $table .= '<td>'.$rows_sco["SCO_Purchase_Amount"].'</td>'; $table .= '<td>'.$rows_sco["SCO_Credit_Alloted"].'</td>'; $table .= '<td>'.$rows_sco["AppliedCredits"].'</td>'; $table .= '<td>'.$rows_sco["SCO_Credit_Alloted"].'</td>'; $table .= '</tr>'; } } ?>
Как мне это достичь?
Любая помощь высоко ценится.
Обновление 1:
После ответа RST я получаю следующий вывод:
SC_OC S_OC SC_Amount SC_Alloted SC_Curent SC_Used SC_Balance ORD-0001 -- 1000 1100 1100 0 1100 ORD-0001 -- 1000 1100 1100 300 800 ORD-0002 -- 2500 2800 3600 0 3600
Обновление 2:
Я как-то пытался получить желаемый результат. Но я не могу получить более одного результата, то есть если в store_credits_orders
больше 1 заказа, я получаю только 1-й результат, а не другие. Вот код:
<?php $queryToGetStoreCredit = "SELECT * FROM store_credits_orders WHERE SCO_CustEmailAdd = '".$_SESSION["Customer"]["email"]."'"; $validate->Query($queryToGetStoreCredit); if ($validate->NumRows() >= 1) { while ($rows_sco = $validate->FetchAllDatas()) { $used = $i = 0; $table .= '<tr>'; $table .= '<td>'.$rows_sco["SCO_OrderCode"].'</td>'; $table .= '<td>--</td>'; $table .= '<td>'.$rows_sco["SCO_OrderDate"].'</td>'; $table .= '<td>'.$rows_sco["SCO_Purchase_Amount"].'</td>'; $table .= '<td>'.$rows_sco["SCO_Credit_Alloted"].'</td>'; $table .= '<td>'.$used.'</td>'; $table .= '<td>'.( $rows_sco["SCO_Credit_Alloted"] - $used ).'</td>'; $table .= '</tr>'; $queryToGetOrder = "SELECT * FROM orders WHERE CustEmailAdd = '".$rows_sco["SCO_CustEmailAdd"]."'"; $validate->Query($queryToGetOrder); while ($row = $validate->FetchAllDatas()) { $table .= '<tr>'; $table .= '<td>--</td>'; $table .= '<td>'.$row["OrderCode"].'</td>'; $table .= '<td>--</td>'; $table .= '<td>--</td>'; $table .= '<td>--</td>'; $table .= '<td>'.$row["AppliedCredits"].'</td>'; $table .= '<td>'.($rows_sco["SCO_Credit_Alloted"] - $row["AppliedCredits"]).'</td>'; $table .= '</tr>'; } } } ?>
Обновление 3:
После комментария RST, используя print_r()
в $rows_sco
, я получаю следующий результат массива:
Array ( [SCO_Id] => 1 [SCO_OrderCode] => ORD-000001 [SCO_CustEmailAdd] => harishmdesai@yahoo.com [SCO_Purchase_Amount] => 1 [SCO_Credit_Alloted] => 100 [SCO_OrderDate] => 2015-03-19 16:45:19 [SCO_OrderIP] => 115.97.1.132 [OrderId] => 1 [OrderCode] => ORD-000001 [CustEmailAdd] => harishmdesai@yahoo.com [CustDelAddId] => 1 [ProdCode] => PK-0002-0004 [Quantity] => 1 [PaytMethod] => 2 [ShippingCharges] => 1 [TaxedAmount] => 1 [AppliedCredits] => 10 [PayableAmount] => 2 [OrderDate] => 2015-03-19 16:53:46 [OrderModified] => 0000-00-00 00:00:00 [OrderStatus] => In Process [OrderIPAddress] => 115.97.1.132 ) Array ( [SCO_Id] => 2 [SCO_OrderCode] => ORD-000002 [SCO_CustEmailAdd] => harishmdesai@yahoo.com [SCO_Purchase_Amount] => 1 [SCO_Credit_Alloted] => 100 [SCO_OrderDate] => 2015-03-19 17:01:25 [SCO_OrderIP] => 115.97.1.132 [OrderId] => 1 [OrderCode] => ORD-000001 [CustEmailAdd] => harishmdesai@yahoo.com [CustDelAddId] => 1 [ProdCode] => PK-0002-0004 [Quantity] => 1 [PaytMethod] => 2 [ShippingCharges] => 1 [TaxedAmount] => 1 [AppliedCredits] => 10 [PayableAmount] => 2 [OrderDate] => 2015-03-19 16:53:46 [OrderModified] => 0000-00-00 00:00:00 [OrderStatus] => In Process [OrderIPAddress] => 115.97.1.132 ) Array ( [SCO_Id] => 1 [SCO_OrderCode] => ORD-000001 [SCO_CustEmailAdd] => harishmdesai@yahoo.com [SCO_Purchase_Amount] => 1 [SCO_Credit_Alloted] => 100 [SCO_OrderDate] => 2015-03-19 16:45:19 [SCO_OrderIP] => 115.97.1.132 [OrderId] => 2 [OrderCode] => ORD-000002 [CustEmailAdd] => harishmdesai@yahoo.com [CustDelAddId] => 2 [ProdCode] => PK-0002-0004 [Quantity] => 1 [PaytMethod] => 2 [ShippingCharges] => 1 [TaxedAmount] => 1 [AppliedCredits] => 0 [PayableAmount] => 12 [OrderDate] => 2015-03-20 09:30:02 [OrderModified] => 0000-00-00 00:00:00 [OrderStatus] => In Process [OrderIPAddress] => 115.97.1.132 ) Array ( [SCO_Id] => 2 [SCO_OrderCode] => ORD-000002 [SCO_CustEmailAdd] => harishmdesai@yahoo.com [SCO_Purchase_Amount] => 1 [SCO_Credit_Alloted] => 100 [SCO_OrderDate] => 2015-03-19 17:01:25 [SCO_OrderIP] => 115.97.1.132 [OrderId] => 2 [OrderCode] => ORD-000002 [CustEmailAdd] => harishmdesai@yahoo.com [CustDelAddId] => 2 [ProdCode] => PK-0002-0004 [Quantity] => 1 [PaytMethod] => 2 [ShippingCharges] => 1 [TaxedAmount] => 1 [AppliedCredits] => 0 [PayableAmount] => 12 [OrderDate] => 2015-03-20 09:30:02 [OrderModified] => 0000-00-00 00:00:00 [OrderStatus] => In Process [OrderIPAddress] => 115.97.1.132 )
PS : Все значения поступают из базы данных.