1

私はデータベースからレコード(「章」でソートされた質問は後で意味がわかります)を読み取り、レコードごとにスコアを追加する調査システムに取り組んできました。質問は配列に格納されます。したがって、1つのレコードにたとえば5つの質問を含めることができます。コードを詳しく見ていきましょう

//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;
}
}

問題は、クエリの最後のレコードを計算する値として使用し、最初のレコードと2番目のレコードを無視し、最後の(3番目の)レコードのみを取得することです。アウト。無線要素のポイントは、ポイントシステムを1から5にランク付けして、次のようにすることです。質問1-2-3-4-5これは私の意図です[レコード1]スコア

【レコード2】スコア

【レコード3】スコア

しかし、現在はこのように機能します[レコード1]

【レコード2】

【レコード3】スコア

自分が持っているbreakコマンドについては完全にはわかりませんが、問題が解決するかどうかをテストしていました。スコアラベルについては、配列がいっぱいになるたびに1ずつインクリメントする必要があることはわかっていますが、構文がわからないか、それが可能かどうかさえわかりません。私はスタックオーバーフローを初めて使用するので、タグが欠落している場合や、目に読めない、または不快なものがある場合はご容赦ください。

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 に答える