您正在建立一个测验系统,基本上我有一个名为$ questions和数组$答案的数组中的问题我在html php中创建了一个接口,将数据问题和答案添加到此数组中
$question1 = $_POST['question1'];
$question2 = $_POST['question2'];
$ans1 = $_POST['ans1'];
$ans2 = $_POST['ans2'];
$questions = array();
array_push($questions,$question1,$question2);
$answers = array();
array_push($answers,$ans1,$ans2);
所以要在数据库中插入这个值,这就是我做的事情
$quest_count = count($questions);
for ($i=0;$i<=$quest_count;$i++)
{
$query = "INSERT INTO quiz (question,answer) VALUES ('$questions[$i]','$answers[$i]')";
$result = mysql_query($query);
}
所以我的问题是这个for循环应该在数据库中添加两行,因为questions数组包含两个值question1和question2但它只添加一行。任何人都可以帮我解决这个问题('$ questions [$ i]','$ answers [$ i]')有问题的部分。
感谢
答案 0 :(得分:1)
您在循环中使用<=
运算符。
将其更改为小于:
for ($i=0;$i<$quest_count;$i++)
{
$query = "INSERT INTO quiz (question,answer) VALUES ('$questions[$i]','$answers[$i]')";
$result = mysql_query($query);
}
另外,请确保正确清理输入字符串。
答案 1 :(得分:0)
请使用&lt;比在for循环中使用&lt; =,这将确保循环运行两次或者是问题数组的精确计数。
答案 2 :(得分:0)
试试这个:
Here no need to count array values & for loop. Instead use foreach loop.
Here is the solution:
foreach ($questions as $key1 => $que, $answers as $key2 => $ans)
{
$query = "INSERT INTO quiz (question,answer) VALUES ('$que','$ans')";
$result = mysql_query($query);
}
- 感谢