0

ループ内の配列からDBにデータを挿入するコードを使用します。

foreach ($sumdrinks1 as $key => $value)    // insert each part of array into DB
{
mysql_query("INSERT INTO table (liq_sum, liq_name, bartender)
VALUES ('$value','$key','$id'))";
}  

$ value = 0の結果は必要ないので、別のクエリを実行してDBからそれらを削除します

mysql_query("DELETE FROM table WHERE liq_sum = 0");

挿入して削除する代わりに、挿入クエリにif条件を追加する方法はありますか?私は次のように考えてみました:

 ("INSERT INTO table (liq_sum, liq_name, bartender) 
 VALUES ('$value','$key','$id') where '$value' > 0)";

動作しませんでした:(

ありがとうございました。

4

3 に答える 3

5

あなたはphpでそれを行うことができます

    foreach ($sumdrinks1 as $key => $value)    // insert each part of array into DB
    {
     if($value>0)
     mysql_query("INSERT INTO table (liq_sum, liq_name, bartender) VALUES     ('$value','$key','$id')");
    }  
于 2013-03-06T06:37:33.317 に答える
3

ifステートメントを使用して値を確認します。

foreach ($sumdrinks1 as $key => $value)  
{
   if ($value > 0) {
      ... // do insert
   }
}  

注: mysql_拡張機能は非推奨であり、この方法のコードはSQLインジェクションに対して脆弱です。代わりに、 PDOまたはプリペアドステートメントを使用してください。

于 2013-03-06T06:37:34.837 に答える
0

この状態は、phpコード自体で確認できます。

foreach ($sumdrinks1 as $key => $value)    // insert each part of array into DB

{
    if($value > 0) {
         mysql_query("INSERT INTO table (liq_sum, liq_name, bartender) VALUES ('$value','$key','$id'))";

    }

}
于 2013-03-06T06:38:40.243 に答える