0
<?php 
$ans=$_REQUEST['ans'];
$qes=$_REQUEST['qes'];
$ra=$_REQUEST['right_op'];
$count=0;
for($i=0; $i<count($ans); $i++)
{
    echo "Question".$qes[$i]"<br>";
    echo "Ans".$ans[$i]"<br>";
    echo "Right Option".$ra[$i]."<br>";
    if(isset($ans[$i]) == isset($ra[$i]))
    {
        $count++;
    }
}
?>

最初のページを送信すると、表示されます

注意: 未定義のオフセット: 9 行目の C:\xampp\htdocs\result.php の 1

データが投稿される最初のページ。

<?php 
$i=1;
$x=0;
$y=0;
$z=0;

do{
  ?>
            <tr>
              <td width="30"></td>
              <td width="30" height="27"><?php echo "$i";?></td>
              <td width="493"><?php echo $row_question['question']; ?>
                <input type="hidden" name="q_id[<?php// echo $y; ?>]" id="q_id" value="    <?php echo $row_question['q_id']; ?>" />
                <input type="hidden" name="qes[<?php echo $y; ?>]" id="qes" value="<?php     echo $row_question['question']; ?>" /><input name="right_op[<?php echo $z; ?>]"     type="hidden" id="right_op" value="<?php echo $row_question['right_op']; ?>" /></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td height="59" align="right"><h3>A)</h3>
                <h3>B)</h3>
                <h3>C)</h3>
                <h3>D)</h3></td>
              <td><h3>
                <label>
                  <input type="radio" name="ans[<?php echo $x; ?>]" value="A" id="ans_0"     />
                      <font color="#FFFFFF"><?php echo $row_question['op_a']; ?></font>    </label>
                <br />
                <label>
                  <input type="radio" name="ans[<?php echo $x; ?>]" value="B" id="ans_1"     />
                  <font color="#FFFFFF"><?php echo $row_question['op_b']; ?></font>    </label>
                <br />
                <label>
                  <input type="radio" name="ans[<?php echo $x; ?>]" value="C" id="ans_2"     />
                  <font color="#FFFFFF"><?php echo $row_question['op_c']; ?></font>    </label>
                <br />
                <label>
                   <input type="radio" name="ans[<?php echo $x; ?>]" value="D" id="ans_3"     /> 
                  <font color="#FFFFFF"><?php echo $row_question['op_d']; ?></font>    </label>
                <br />
              </h3></td>
             </tr>

<tr>
  <td height="17" colspan="3"><hr /></td>
    </tr><?php
    $i++; 
    $x++;
    $y++;
        $z++;
    } while ($row_question = mysql_fetch_assoc($question)); ?>

このコードのどこが間違っていますか。詳しく教えてください。
ありがとうございました。

4

3 に答える 3

2

isset()アクセスする前に必ず使用する

if (isset($ra[$i])  && isset($ans[$i]) && isset($qes[$i])){
  // your code
}

また

array_key_exists($i, $ra);

また

于 2013-07-06T17:59:16.137 に答える
0

すべての配列が同じサイズであることを期待しているように見えますが、$ra他の配列よりも小さい場合はそうではありません。

 echo "Right Option".$ra[$i]."<br>";

通知を引き起こします。$raサイズ直しが必要のようです。

于 2013-07-06T17:59:16.563 に答える
0

$raは配列内にそれほど多くのメンバーを持っていない$ansため、ループの 2 回目の繰り返しに到達すると、$ra[1]表示するものは何もありません。なぜ と の長さが異なるのかを理解する必要があり$raます$ans。あなたが何をしているのかについての情報がなければ、私たちが知ることは困難です.

@Nikola が示すように、 を使用して出力する前に、アクセスしているインデックスに何かがあることを常に確認する必要がありますisset()。入っているのに入っていないことが妥当かどうかは、$ra[1]あなた$ans[1]しか答えられません。

コードから多くのことを推測すると、$ra は正しい答えを示すことを意図しているように見えます。その場合は 1 つしかないため、 $ra 配列の最初の要素を常に表示する$ra[0]代わりに を使用する必要があります。$ra[$i]もちろん、あなたのコードの意図を誤解しているかもしれないので、YMMV.

于 2013-07-06T18:00:58.250 に答える