1

嗨,我正在构建一个测验系统,基本上我的问题在一个名为 $questions 的数组中,在一个数组 $answers 中我已经在 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 循环应该在数据库中添加两行,因为问题数组包含两个值 question1 和 question2 但它只添加一行。任何人都可以帮我解决这个问题,我确信它的 ('$questions[$i]','$answers[$i]') 部分有问题。

谢谢

4

3 回答 3

1

您正在<=循环中使用运算符。

将其更改为小于:

for ($i=0;$i<$quest_count;$i++)
{
  $query = "INSERT INTO quiz (question,answer) VALUES ('$questions[$i]','$answers[$i]')";
  $result = mysql_query($query);
}

此外,请确保正确清理输入字符串。

于 2013-10-17T06:29:18.010 回答
0

请使用 < 而不是在 for 循环中使用 <=,这将确保循环运行两次或问题数组的确切计数。

于 2013-10-17T06:31:09.553 回答
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);
}

- 谢谢

于 2013-10-17T06:59:50.427 回答