1

我一直在研究一个调查系统,它从数据库中读取记录(按“章节”排序的问题,你稍后会看到我的意思)并为每条记录添加分数。问题存储在一个数组中。所以一个记录可以保存例如五个问题。让我们深入研究代码

//echo the question list from the database

$query_questions = mysql_query("SELECT * FROM `vraag`");
while($result = mysql_fetch_array($query_questions))
{
//displaying the questions
echo "<br /><br /><b>";
echo $result['header']. "</b><br />";
echo $result['beschrijving']. "<br /><br />";
echo $result['onderwerp']. "<br />";

$aantal = $result['aantal_vragen'];
$id = $result['id'];
echo "<input type='hidden' id='number_of_questions' value=".$aantal." mousedown='calculate_score(this.value,0)'/>";
$array = unserialize($result['vraag']);
//retrieve the content from the array
for($i = 0; $i < $array; $i++)
{
        foreach($array as $value)
        {
            $array = $value;
            echo "<form><table><td>". $array ."</td>";
            echo "
            <td>1<input type='radio' name='vraag[]' value=1 onclick='calculate_score(".$aantal.",this.value)'/></td>
            <td>2<input type='radio' name='vraag[]' value=2 onclick='calculate_score(".$aantal.",this.value)'/></td>
            <td>3<input type='radio' name='vraag[]' value=3 onclick='calculate_score(".$aantal.",this.value)'/></td>
            <td>4<input type='radio' name='vraag[]' value=4 onclick='calculate_score(".$aantal.",this.value)'/></td>
            <td>5<input type='radio' name='vraag[]' value=5 onclick='calculate_score(".$aantal.",this.value)'/></td></table></form>";
        }
    echo "Uw totaal score is: <span id='total_score[]' ></span>";
    break;
}
}

问题是它使用查询的最后一条记录作为计算值,它忽略了第一条记录和第二条记录,只选择最后一条(第三条)记录我希望它为每条记录分配一个分数,所以很快得出出去。单选元素的要点是做一个从1到5的积分系统排名所以看起来像:问题1-2-3-4-5这是我的意图[记录1]得分

【记录2】得分

【记录3】得分

但目前它是这样工作的 [记录 1]

[记录2]

【记录3】得分

我不完全确定我拥有的 break 命令,但我正在测试它是否能解决我的问题。对于分数标签的事情,我知道我应该在每次填充数组时将数组增加一,但我不知道语法,或者是否有可能这样做。我是堆栈溢出的新手,所以请原谅我缺少任何标签或任何其他不可读或不愉快的东西。

4

1 回答 1

0

for循环没有意义。在内部循环中,您在迭代它时重新分配$array(真的不知道它做了什么,但这完全是错误的)。

//Drop this code:
//for($i = 0; $i < $array; $i++)
//{
    foreach($array as $value)
    {
        $array = $value;   /* this is WRONG */
        /* ... */
    }
echo "Uw totaal score is: <span id='total_score[]' ></span>";
//break;   <--- don't need this either
//}
于 2012-04-27T08:57:47.577 回答