我有一个PHP表单,可以发布以下任意数量的记录:
'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 :(得分:0)
foreach ($data AS $share => $value) {
if (array_sum($value) == 100) {
// insert record
}
else {
echo 'You borked it.'
}
}
答案 1 :(得分: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);
}