如何访问每个存储的数组变量

时间:2016-02-11 11:56:29

标签: php arrays forms

我正在尝试访问ques数组变量以存储到db。

        $n=0;
        while($row= mysql_fetch_row($rs)){?>
        <form name="myfm" id="myfm" method="post" action="Quiz.php">
        <table width=100%> <tr> <td width=30><td></td></td></tr> <table border=0>
        <?php $n=$n+1; ?>
        <tr><td>Question  <?php echo $n." "; echo $row[2]; ?></td></tr>
        <tr><td class=style8><input type="radio" name="ques['<?php echo $n; ?>'][]" value=1><?php echo $row[3]; ?></td></tr>
        <tr><td class=style8> <input type="radio" name="ques['<?php echo $n; ?>'][]" value=2><?php echo $row[4];?></td></tr>
        <tr><td class=style8><input type="radio" name="ques['<?php echo $n; ?>'][]"  value=3><?php echo $row[5];?></td></tr>
        <tr><td class=style8><input type="radio" name="ques['<?php echo $n; ?>'][]"  value=4><?php echo $row[6];?></td></tr>

    <?php 
        }
        echo "<tr><td><input type=submit name=submit id='result' value='Get Result'></form>";
        ?>
        </table></table>
        </form>

我试过这段代码

        $n=0;
        while($row= mysql_fetch_row($rs)){
        for($i=0;$i<count($_POST['ques']);$i++)
        {$n=$n+1;

        $questions = $_POST["ques"];
foreach ($questions as $q) {      
    print_r($_POST['ques']);
}

        mysql_query("insert into useranswer(sessid, testid, ques, ans1,ans2,ans3,ans4,correctans,yourans) values ('".session_id()."',       $tid,'$row[2]','$row[3]','$row[4]','$row[5]', '$row[6]','$row[7]','$ans')") or die(mysql_error());

        }

输出:

       Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) ) Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) ) Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) ) Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) ) Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) ) Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) ) Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) ) Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) ) Array ( ['1'] => Array ( [0] => 2 ) ['2'] => Array ( [0] => 2 ) ['3'] => Array ( [0] => 2 ) )

但是没有工作。如果您知道正确的代码,请帮助我....如果您想要更多代码,请访问此链接“https://stackoverflow.com/questions/35217287/how-to-convert-this-php-page-into-a-page-that-shows-all-questions-please-read-de

2 个答案:

答案 0 :(得分:2)

在PHP中,变量插值仅在双引号内起作用 迭代ques数组值:

if (isset($_POST["ques"])) {
    $questions = $_POST["ques"];
    $ans = [];
    $i = 0;
    foreach ($questions as $q) {      
        $ans[] = $q[$i];
        $i++;
    }
    ...
    // to insert values into respective table fields use:
   $values = implode(",", $ans);
   // then place $values into the needed position in query:
   // "... values ('... , ...., ". $values . ", ....)"
}

答案 1 :(得分:1)

像这样。

 $questions = $_POST["ques"];
    foreach ($questions as $key=>$value) {      
        echo $value;
    }