php系统操作mysql 将html 复选框值插入数据库问题
(问题有些详细较长,希望耐心看完解决追加高分)一个简易的投票系统,form表单<formaction="vote.php"method="post"onsubmit="r...
(问题有些详细较长,希望耐心看完解决追加高分)一个简易的投票系统,form表单<form action="vote.php" method="post" onsubmit="return checkedTest();" >中有多个复选框,如下图。
复选框部分主要代码如下(省略前后闭合代码)
while ( $row_option = mysqli_fetch_assoc ( $result_option ) ) {
<input name="20" type="checkbox" value="<?php echo $row_option['cid'] ?>" />
其中$row_option['cid']是数据库中这个选项的ID自增。
表单action到vote.php内的主要操作是(省略头部)
$ss = $_POST;
function voteing($ss, $db)
{
$success = true;
foreach($ss as &$value){
$result = $db->query("select votenum from voteoption where cid='".$value."';");
$row = mysqli_fetch_assoc($result);
$result = $db->query("update voteoption set votenum='".($row['votenum']+1)."' where cid='".$value."'");
if(!$result){
$success = false;
}
}
if($success){
foreach($ss as $key => $value){
$result = $db->query("select sum(votenum) from voteoption where upid='".$key."';");
$row = mysqli_fetch_assoc($result);
$result = $db->query("update votename set sumvotenum='".$row['sum(votenum)']."' where cid='$key';");
if(!$result){
$success = false;
}
}
if($success){
return true;
}
}
return false;
}
........(省略判断重复投票部分)
else{
voteing($ss, $db);
echo "<script>alert('投票成功');</script>";
echo "<meta http-equiv=\"Refresh\" content=\"0;url=index.php\">";
exit();
}
现在的问题是投票可以成功,但是多选的时候只有ID最小的那一个选项后台票数加一,其他的都不变,求大神分析错误十分感谢!可以解决就再追加最高分急急急
其中多选之后提交试着打印 print_r($ss); 输出为 Array ( [20] => 59 [code_num] => [num] => 1 ) 展开
复选框部分主要代码如下(省略前后闭合代码)
while ( $row_option = mysqli_fetch_assoc ( $result_option ) ) {
<input name="20" type="checkbox" value="<?php echo $row_option['cid'] ?>" />
其中$row_option['cid']是数据库中这个选项的ID自增。
表单action到vote.php内的主要操作是(省略头部)
$ss = $_POST;
function voteing($ss, $db)
{
$success = true;
foreach($ss as &$value){
$result = $db->query("select votenum from voteoption where cid='".$value."';");
$row = mysqli_fetch_assoc($result);
$result = $db->query("update voteoption set votenum='".($row['votenum']+1)."' where cid='".$value."'");
if(!$result){
$success = false;
}
}
if($success){
foreach($ss as $key => $value){
$result = $db->query("select sum(votenum) from voteoption where upid='".$key."';");
$row = mysqli_fetch_assoc($result);
$result = $db->query("update votename set sumvotenum='".$row['sum(votenum)']."' where cid='$key';");
if(!$result){
$success = false;
}
}
if($success){
return true;
}
}
return false;
}
........(省略判断重复投票部分)
else{
voteing($ss, $db);
echo "<script>alert('投票成功');</script>";
echo "<meta http-equiv=\"Refresh\" content=\"0;url=index.php\">";
exit();
}
现在的问题是投票可以成功,但是多选的时候只有ID最小的那一个选项后台票数加一,其他的都不变,求大神分析错误十分感谢!可以解决就再追加最高分急急急
其中多选之后提交试着打印 print_r($ss); 输出为 Array ( [20] => 59 [code_num] => [num] => 1 ) 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询