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

당신이'경우를 시도해 봤어'? 마치 문자열 값을 얻는 것처럼 보이고, 정수 0에 대한 '! =='엄격 비교가 실패합니다. –

+0

무엇을 시도했는데 어떤 방식으로 작동하지 않았습니까? –

+0

@Michael - 방금 제안한 것을 시도했지만 percent_owner = 0 일 때 레코드를 계속 입력합니다. SQL 문으로이 작업을 수행 할 수있는 방법이 있습니까? – Progger

답변

0

$data['percentOwner'][$i] 값을 정수로 캐스팅 한 후 0과 비교하십시오. 당신이 위의 값을 생산하는 방식에서 문자열로 나타납니다 (! INTVAL ($ 데이터 [ '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); 
    } 
}