1

PHP 検証データに問題があります。これまでの私のコード

$cek_saldo=mysql_query
("SELECT * FROM t_balance");

        while ($data_cek = mysql_fetch_array($cek_saldo));
        {
            $b_id = $data_cek['badge_id'];
            $mon = $data_cek['month'];
            $bal = $data_cek['balance_type'];
        }

        if ($b_id == '$badge_id' AND $mon == '$date_month' AND $b_type == '$jns_saldo')
        {
            echo "<div class='emp_err warn'>Balance for this month has been added before.</div>";
        }

        else
        {
            if($_POST)
            {
                $query = "INSERT INTO t_balance(badge_id, balance_amount, month, balance_type, date_transaction)
                        VALUES ('$badge_id', '$saldo', '$bulan', '$jns_saldo', '$date_transaction')
                ";
                $hasil = mysql_query($query);

                if($hasil)
                {

                    echo "<div class='emp_err success'>Balance transaction successfully added.</div>";
                }
                else
                {

                    echo "<div class='emp'>Gagal menambahkan saldo.</div>";
                }
            }
        }

ルールは次のとおりです。
タブンガン ワジブは、月に 1 回提出できます。したがって、2 回の場合、「今月の残高は以前に追加されました」というエラーが表示されます。

Tabungan Tambahan は、1 か月に 1 回以上提出できます。したがって、複数回送信すると保存されます。

誰にも提案がありますか?

4

4 に答える 4

0
if ($b_id == "$badge_id" AND $mon == "$date_month" AND $b_type == "$jns_saldo")
        {
            echo "<div class='emp_err warn'>Balance for this month has been added before.</div>";
        }

変数を使用した比較での一重引用符が原因でコードが失敗しました PHP で一重引用符と二重引用符で囲まれた文字列の違いを学習しよう

于 2013-04-15T05:02:14.517 に答える
0

引用する必要はありません$badge_id $date_month $jns_saldo。$_POST を使用してフォームから来ると思います

if ($b_id == $badge_id AND $mon == $date_month AND $b_type == $jns_saldo)
于 2013-04-15T05:26:58.977 に答える
0

データベースから複数の行を選択し、最後の行のみを e に割り当てているため、この検証は機能しませ ん$b_id$mon

そして、あなたはsingle quotes比較のために使用しています

解像度

  1. 可能であれば、いくつかのIDに基づいてデータを選択します

    $cek_saldo=mysql_query("SELECT * FROM t_balance where id = 'someid'");
    
    while ($data_cek = mysql_fetch_array($cek_saldo));
    {
        $b_id = $data_cek['badge_id'];
        $mon = $data_cek['month'];
        $bal = $data_cek['balance_type'];
    }
    
  2. エラーフラグを設定する

    $error = false;
    
    while ($data_cek = mysql_fetch_array($cek_saldo));
    {
        $b_id = $data_cek['badge_id'];
        $mon = $data_cek['month'];
        $bal = $data_cek['balance_type'];
        if($b_id == $badge_id AND $mon == $date_month AND $b_type == $jns_saldo)
       {
          $error = true;
          break
       }
    }
     if($error)
     {
        echo "<div class='emp_err warn'>Balance for this month has been added before.</div>";
    
     }
    

それが役に立てば幸い

于 2013-04-15T05:08:24.643 に答える
0

これを使って。

$cek_saldo= mysql_query("SELECT * FROM t_balance");

    while ($data_cek = mysql_fetch_array($cek_saldo));
    {
        $b_id = $data_cek['badge_id'];
        $mon = $data_cek['month'];
        $bal = $data_cek['balance_type'];

        if ($b_id == "$badge_id" && $mon == "$date_month" && $b_type == "$jns_saldo")
        {
            echo "<div class='emp_err warn'>Balance for this month has been added before.</div>";
        }
        else
        {
            if($_POST)
            {
                $query = "INSERT INTO t_balance(badge_id, balance_amount, month, balance_type, date_transaction)
                        VALUES ('".$badge_id."', '".$saldo."', '".$bulan."', '".$jns_saldo."', '".$date_transaction."')";
                $hasil = mysql_query($query);

                if($hasil)
                {

                    echo "<div class='emp_err success'>Balance transaction successfully added.</div>";
                }
                else
                {

                    echo "<div class='emp'>Gagal menambahkan saldo.</div>";
                }
            }
        }
    }
于 2013-04-15T05:48:15.777 に答える