【发布时间】:2015-03-19 07:22:37
【问题描述】:
我在我的电子商务应用程序中有一个称为商店积分(预付款)的功能,如果客户在他的帐户中有积分,客户可以在其中兑换商店积分。
到目前为止一切正常。
我想要在客户的“我的帐户详细信息”中显示这样的数据:
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:
我以某种方式试图获得所需的输出。但是我不能得到超过 1 个结果,也就是说,如果 store_credits_orders 中有超过 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 的评论之后,在 $rows_sco 上使用 print_r(),我得到以下数组结果:
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
)
P.S.:所有值均来自数据库。
【问题讨论】:
-
谁能帮帮我?因为我非常沮丧..
-
(这个问题好像已经被放弃了and re-asked here)。