2011-12-31 61 views
0

我有哪些職位以下任意數量的記錄PHP形式:PHP數學驗證之前,MySQL的寫

'asset_ID', 'percent_owner_<?=$members['member_ID']?>' 

PHP頁面接收柱分離percent_owner和member_ID使用下列內容:

foreach ($_POST AS $input => $value) { 
    if (stristr($input, 'percent_owner_')) { 
    $memberID = str_replace('percent_owner_', '', $input); 

    $data[$memberID] = array(
    'memberID' => $memberID, 
    'percentOwner' => $value 
     ); 
     } 
    } 

腳本的下一部分進入的記錄任何數字到MySQL使用下列內容:

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

所有這一切都很好。我現在遇到的問題是在上面插入MySQL之前,我想驗證所有百分比總計高達100%。例如,如果有3個成員有25%,25%和25%,我想生成一條錯誤消息,而不是插入。現在,您必須手動輸入百分比並將它們總計爲100。該數據庫將接受少於或超過100%,這打破了數學。

我玩弄下面的命令插入無濟於事前:

foreach ($data AS $share => $value) { 
    $total = array_sum($value); 
    } 
    include('./view/temp.php'); 

我很新的PHP所以請我的無知承擔。

謝謝!

回答

0

以下流程的東西將滿足您的需要,我認爲。

foreach ($_POST AS $input => $value) { 
    if (stristr($input, 'percent_owner_')) { 
    $memberID = str_replace('percent_owner_', '', $input); 

    $data['memberID'][] = $memberID; 
    $data['percentOwner'][] = $value; 
     } 
    } 

if(array_sum($data['percentOwner'] != 100)){ 
//generate Error 
} 

$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); 
    } 
+0

我想你的建議,但我在下面的行收到一個錯誤: 的foreach($ i = 0; $ I <$ C,$ I ++) 它似乎並不像分號。我嘗試了一個逗號,而不是去。 – Progger 2011-12-31 22:21:19

+0

看看foreach手冊,它看起來像foreach($ i = 0; $ i <$ c; $ i ++)不是正確的語法。但是,它看起來像是「for」命令的正確語法。我會繼續嘗試 – Progger 2011-12-31 22:27:56

+0

@Progger哦,真抱歉,我的壞...第二個循環應該是'for'而不是'foreach' – Pheonix 2011-12-31 22:39:34

0
foreach ($data AS $share => $value) { 
    if (array_sum($value) == 100) { 
     // insert record 
    } 
    else { 
     echo 'You borked it.' 
    } 
}