2012-01-02 54 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,我不想插入的记录。我试图在for内输入if,查看if '{$data['percentOwner'][$i]}' !== 0,但无法使其正常工作。任何帮助,将不胜感激。

谢谢。

+3

你试过if(intval($ data ['percentOwner'] [$ i])!== 0)'?它看起来像你会得到一个字符串值,并且这将不符合整数0的'!=='严格比较。 – 2012-01-02 03:59:03

+0

你尝试了什么,它以什么方式不起作用? – 2012-01-02 04:01:05

+0

@Michael - 我只是尝试了你的建议,但它仍然在percent_owner = 0时输入记录。有没有办法用sql语句来做到这一点? – Progger 2012-01-02 04:10:30

回答

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); 
    } 
}