【发布时间】:2014-01-31 20:34:55
【问题描述】:
我一直在开发这个应用程序,它有一个名为 funds 的表,这个 funds 表维护用户帐户的资金流入和流出。
这是数据库设计:-
NAME TYPE DEFAULT NULL
recordid int auto_increment NO
parentemail varchar(255) NO
funds int NO
is_locked varchar YES NO
好的,假设此表中有 4 个条目,其中两个状态为 YES,其中两个状态为 NO,我正在使用此查询从该表中获取总和和锁定状态。
SELECT sum(funds) AS funds,is_locked AS status FROM funds where parentemail = '" . $email . "' GROUP BY is_locked
然后我使用此代码将锁定资金(状态为 (is_locked) 的资金设置为 YES)和解锁资金(状态 (is_locked) 设置为 NO)的值设置为不同的变量;
$query3="SELECT sum(funds) AS funds,is_locked AS status FROM funds where parentemail = '" . $email . "' GROUP BY is_locked";
$result3=mysql_query($query3,$db) or die (mysql_error($db));
$row3=mysql_fetch_array($result3);
$ulfunds=0;
$lfunds=0;
while($row3=mysql_fetch_assoc($result3))
{
if($row3['status'] == "NO") //if is_locked == NO, then funds are not locked and it would be stored in $ulfunds
{
$ulfunds=$ulfunds + $row3['funds'];
}
if($row3['status'] == "YES")//if is_locked == YES, then funds are are locked and would be stored in $lfunds
{
$lfunds=$lfunds + $row3['funds'];
}
}
问题
现在,如果我回显 $lfunds(locked funds) 和 $ulfunds(unlocked funds),我会得到 $lfunds 的正确值(锁定资金,is_locked == YES),但我会得到 $unfunds 的输出 0(默认值)(解锁资金)。
我该如何解决这个问题,以便在两个变量中都得到正确的值?
谢谢。
【问题讨论】:
-
您不需要将行值添加到变量中。每个状态只有一行,你可以做一个普通的任务。
-
我建议你看看 Laravel。
-
@MichaelCalkins 我曾经想过转向框架。但我想我需要好好练习 OOP 对吧?
-
@Ankur 如果我要重新开始 PHP,我会从头开始正确的方式。我走上了你现在正在走的路,如果能跳过它就太好了。