提交按钮只看到多个问题作为一个问题使用php和数据库


Submit button only sees the multiplequestions as onequestion using php and database

所以我有这个问题。例如,当我选择问题1的单选按钮时,它会选择单选按钮。但是当我从另一个问题中选择另一个单选按钮时,我选择的第一个单选按钮不再被选中,而另一个单选按钮被选中。我试着寻找解决办法,但什么也找不到。这是学校的一个项目,我们要做一个投票。下面是代码:

<?php
mysql_connect("  ", "    ", "   ");
mysql_select_db("  ") or die(mysql_error());
if(isset($_POST['verzenden'])) {
$query="UPDATE optie SET stemmen = stemmen + 1 WHERE id='" . $_POST['item']. "'";
}
if(mysql_query($query)){
echo"Stem opgeslagen! <br /><br/>";
} else {
echo"Fout tijdens opslaan stem!<br /><br/>";
}
$result = mysql_query("SELECT * FROM poll");
while($data = mysql_fetch_assoc($result)){
echo"<b>" . $data['vraag'] . "</b><br/><br />";
echo"<form method='post' action=''>";
echo "<fieldset>";
$result2 = mysql_query("SELECT * FROM optie WHERE poll ='" . $data['id'] . "'");
while($data2 = mysql_fetch_assoc($result2)){
echo"<input type='radio' name='item' value='" . $data2['id'] . "'/>" . $data2['optie'] . "<br />";
}
echo"<br/>";
echo"</fieldset>";
}
?>
<input type='submit' name='verzenden' value='Verzenden'>
</form>
<a href="checkbox.php">Ga verder</a>
我希望有人能帮助我。再见,凯瑟琳

这是因为所有的单选按钮集都有相同的名称:item。这里有几种方法可以使单选按钮集独一无二;选一个最适合你的。

  1. poll.id值附加到每个按钮名称后:

    $result2 = mysql_query("SELECT * FROM optie WHERE poll ='" . $data['id'] . "'");
    while($data2 = mysql_fetch_assoc($result2)){
      echo"<input type='radio' name='item_" . $data['id'] . "' value='" . $data2['id'] . "'/>" . $data2['optie'] . "<br />";
    }
    
  2. 在每个按钮名称后添加序列号:

    $result2 = mysql_query("SELECT * FROM optie WHERE poll ='" . $data['id'] . "'");
    $buttonNumber = 0;
    while($data2 = mysql_fetch_assoc($result2)){
      ++$buttonNumber;
      echo"<input type='radio' name='item_$buttonNumber' value='" . $data2['id'] . "'/>" . $data2['optie'] . "<br />";
    }
    

最后,请注意mysql_query系列函数已被弃用,因为它可能使您容易受到SQL注入攻击。有关使用mysqliPDO的信息,请参阅此处和其他地方。

您应该为每组单选按钮使用不同的名称,

把你的单选按钮改成如下的样式,

echo"<input type='radio' name='item_". $data2['id'] ."' value='" . $data2['id'] . "'/>

似乎下面的行应该在第一个while循环之前

echo"<form method='post' action=''>";
echo "<fieldset>";