我在我的电子商务应用程序中有一项名为商店信用(预付款)的功能,其中客户可以在他的帐户中兑换商店信用。
到此为止,一切正常。
我想要的是我想在客户的“我的帐户明细”中显示这样的数据:
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评论后,使用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
)
P.S。:所有值都来自数据库。
答案 0 :(得分:1)
在显示rowdata之前,请检查SC_Used
。
如果为0,则将S_OC的值设置为“ - ”
如果不是0,则设置SC_OC,SC_Amount,SC_Alloted的值为' - '
然后显示行
代码:
while ($rows_sco = $validate->FetchAllDatas()) {
$i = 0;
if ( 0 == $rows_sco["AppliedCredits"]) {
$rows_sco["OrderCode"] = '--';
} else {
$rows_sco["SCO_OrderCode"] = '--';
$rows_sco["SCO_Purchase_Amount"] = '--';
$rows_sco["SCO_Credit_Alloted"] = '--';
}
$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>';
}
你可能需要用'0'替换0