2012-01-02 4 views
2

でない限り、レコードを挿入しようとすると、私は、MySQLに複数のレコードを挿入し、次のコードを持っている:値が0

foreach ($_POST AS $input => $value) { 
    if (stristr($input, 'percent_owner_')) { 
     $memberID = str_replace('percent_owner_', '', $input); 
     $data['memberID'][] = $memberID; 
     $data['percentOwner'][] = $value; 
    } 
} 
$total = array_sum($data['percentOwner']); 

if ($total !=100) { 
    $error = "Must total 100%."; 
    include('./errors/shares_error.php'); 

} else { 

    $c = count($data['memberID']); 
    for ($i=0;$i<$c;$i++) { 

     $asset_ID = $_GET['asset_ID']; 
     $query = "INSERT INTO shares (asset_ID, member_ID, percent_owner) 
      VALUES ('$asset_ID', '{$data['memberID'][$i]}', '{$data['percentOwner'][$i]}')"; 
     $add_shares = $db->exec($query); 
    } 
} 

「percent_owner」の値が0であれば、私はレコードが挿入されていること望んでいません。私はifの文をforに入れようとしましたが、if '{$data['percentOwner'][$i]}' !== 0を確認しましたが、動作させることができませんでした。どんな助けもありがとう。

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

+3

':あなたの価値を生み出してきた道から上記の文字列であるように思われる(INTVAL($データ[ 'percentOwner'] [$ i])と== 0!)?文字列の値を取得しているように見えますが、これは整数値0との厳密な比較が失敗するでしょう。 –

+0

何を試してみましたか?どのように動作しませんでしたか? –

+0

@マイケル - 私はあなたが提案したものを試しましたが、percent_owner = 0のときにレコードを入力しています.SQLステートメントでこれを行う方法はありますか? – Progger

答えて

0

$data['percentOwner'][$i]の値を整数としてキャストした後に0と比較します。場合は、 `てみました

for ($i=0;$i<$c;$i++) { 
    // Compare in if() against intval() of the value 
    if (intval($data['percentOwner'][$i]) !== 0) { 
    $asset_ID = $_GET['asset_ID']; 
    $query = "INSERT INTO shares (asset_ID, member_ID, percent_owner) 
     VALUES ('$asset_ID', '{$data['memberID'][$i]}', '{$data['percentOwner'][$i]}')"; 
    $add_shares = $db->exec($query); 
    } 
}