提交按钮仅使用php和数据库将多项注释视为一个问题

时间:2013-05-19 03:37:03

标签: php mysql database multiple-choice submit-button

所以我有这个问题。例如,当我选择问题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>

我希望有人可以帮助我。 再见, 凯瑟琳

3 个答案:

答案 0 :(得分:0)

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

将单选按钮更改为如下所示

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

这可能有用。

答案 1 :(得分:0)

这种情况正在发生,因为您的所有单选按钮集都具有相同的名称: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 />";
    }
    
  3. 最后请注意,mysql_query系列函数已弃用,因为它可能使您容易受到SQL注入攻击。有关使用mysqliPDO的信息,请参阅here和其他地方。

答案 2 :(得分:0)

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

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