-2

我不知道我的 PHP 代码会发生什么。

我有这样的表(t_balance)

badge_id | emp_name | month  | amount | balance_type
115201   | Greg     | August | 150000 | Tabungan Wajib
115201   | Greg     | August | 50000  | Tabungan Tambahan
115201   | Greg     | August | 75000  | Tabungan Tambahan

现在我想锁定 Tabungan Wajib 只能提交 1 次,因为 Tabungan Tambahan 可以提交超过 1 次。

我在我的代码中使用 PHP,如下所示:

$cek_saldo = mysql_query("SELECT badge_id, month, balance_type FROM t_balance WHERE (balance_type='Tabungan Wajib' && badge_id='$badge_id' && month='August')") OR die(mysql_error());;
$found=mysql_num_rows($cek_saldo);
if($found > 0)
{
echo "Duplicate";
}
else
    {
    do submit data
}

我不知道我的代码会发生什么。因此,如果我第一次提交 tabungan wajib,它就保存了。但是如果我想提交超过 1 次 Tabungan Tambahan,它总是说 Duplicate。

4

3 回答 3

1

仅当您提交的数据中有 balance_type == Tabungan Wajib 时才执行查询

于 2013-08-14T09:40:25.430 回答
0

我无法确定您要达到的目标,但是这行代码

$found=mysql_num_rows($cek_saldo);

为您提供查询结果的行数,这在大多数情况下比零行多。然后检查if statement它是否大于零,在这段代码中就是这种情况。所以这echo "Duplicate";条线运行成功。

您需要为您的 . 检查一个不同的变量if clause,这取决于您到底想要做什么。

于 2013-08-14T09:41:42.590 回答
0

您正在搜索,SELECT badge_id, month, balance_type FROM t_balance WHERE (balance_type='Tabungan Wajib')只要Tabungan Wajib数据库中存在您将永远无法提交任何数据,无论它包含什么。balance_type您应该只在equals时执行该查询Tabungan Wajib

if ($balance_type == "Tabungan Wajib") {
   $cek_saldo = mysql_query("SELECT badge_id, month, balance_type FROM t_balance WHERE (balance_type='Tabungan Wajib' && badge_id='$badge_id' && month='August')") OR die(mysql_error());
   $limit = mysql_num_rows($cek_saldo);
} else {
   $limit = false;
}

if($limit)
{
   echo "Duplicate";
} else {
   // do submit data
}
于 2013-08-14T09:41:00.340 回答