2013-08-18 506 views
-2

我想在php和mysql中创建类似测验的东西。这只是为了好玩,但仍然存在提交radio输入时出现问题的情况。 HTML的例子:插入多个复选框到MySQL

<input type="radio" name="news[]" value="0"><label>Nie</label>&nbsp;&nbsp; 
    <input type="radio" name="news[]" value="1"><label>Tak</label> 

和我的SQL如下:

$answer1 = $_POST['news']; 
$answer2 = $_POST['politics]; 

mysql_query('INSERT INTO quiz (id, answer1, answer2...) VALUES (null, $answer1, $answer2...); 

它alsways插入0,不管什么会我检查。我知道我通过使用foreach来解决这个问题,但是我认为这会创建多个INSERT陈述。

+0

欢迎世界SQL注入:http://en.wikipedia.org/wiki/SQL_injection –

+0

我试着用'mysql_real_escape_string',但它返回' $ answer1'是一个数组。 –

+0

ofcourse你使用输入数组,这就是为什么它返回一个数组() – leonardeveloper

回答

0

尝试使用一个循环:

$n = count($_POST['news']); 
    for($x = 0; $x < $nl $x++){ 
     mysql_query('INSERT INTO quiz (id, answer1, answer2) VALUES (null, $answer1[$x], $answer2[$x]); 
    } 
+0

这不会创建多个'INSERT'语句吗? –

+0

它会,这就是你要求的,除非你的表模式有每个选择的列(这是一个坏主意)。 – AlexLordThorsen

+0

@TomekBuszewski如果你想插入一个语句,那么你不应该使用输入数组 – leonardeveloper