-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 は複数回送信できるため、ロックしたいと思います。

次のようにコードで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
}

私のコードで何が起こるかわかりません。初めてタブンガン ワジブを提出した場合、それは保存されました。しかし、タブンガン タンバハンを 1 回以上提出したい場合は、常に重複と表示されます。

4

3 に答える 3

1

送信するデータの balance_type == Tabungan Wajib の場合にのみクエリを実行します

于 2013-08-14T09:40:25.430 に答える
0

何を達成しようとしているのかはわかりませんが、このコード行は

$found=mysql_num_rows($cek_saldo);

は、クエリ結果の行数を示します。これは、ほとんどの場合、0 行を超えています。そしてif statement、それが 0 より大きいかどうかをチェックインします。これは、このコードの場合です。したがって、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_typeequalsの場合にのみ、そのクエリを実行する必要があります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 に答える