在数据库中插入单选按钮输入

时间:2015-08-17 05:50:16

标签: php mysql phpmyadmin

我正在创建一个类似测验的结构。为此,我试图获得每个问题的答案,并将其插入我的数据库中,并回答问题的类型。但是,我无法将这些数据放入变量中,而且我得到了: 注意:Undefined index: question-0-answer

在代码的注释部分。任何帮助..

$options = '';
$filter=mysql_query("select afnumber from employees WHERE Status='Employed '");
while($row = mysql_fetch_array($filter)) {
    $options .="<option >" . $row['afnumber'] . "</option>";
}
$menu="<form id='filter' name='filter' method='post' action=''>
AFNumber : <select name='SelectAF' id='filter' style='color:grey;'>" . $options . "</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Evaluation Test Type : <select name='Type' id='type' style='color:grey;'><option selected='selected'></option><option value='loyalty'>Loyalty</option><option value='performance'>Performance</option></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type='submit' name='submit1' value='Submit' style='width:80px; height:30px; text-align:center; padding:0px;'>
</form>
<br>
";
 echo $menu;

if(isset($_POST['submit1']))

{   
$type = $_POST['Type'];

$mysqli = new mysqli("localhost", "root", "Js", "jr");
/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

 if ( $result = $mysqli->query( "SELECT questiontext FROM questioninfo WHERE type='$type'" ) ) {


        $html=array();

        $html[]="
        <form action='' method='post' id='quiz'>
            <ol>";

        $counter=1;

        while( $row = $result->fetch_array() ) {


            $question=$row['questiontext'];
            $answerA=1;
            $answerB=2;
            $answerC=3;
            $answerD=4;
            $answerE=5;

            $html[]="
             <br/>
                <h3>Question {$counter}:&nbsp; {$question}</h3>

                <li>
                    <br/>
                    <input type='radio' name='question-{$counter}-answers' id='question-{$counter}-answersA' value='A' />
                    <label for='question-{$counter}-answers-A'> {$answerA} </label>
                    <br/>
                    <input type='radio' name='question-{$counter}-answers' id='question-{$counter}-answersB' value='B' />
                    <label for='question-{$counter}-answers-B'> {$answerB} </label>
                    <br/>
                    <input type='radio' name='question-{$counter}-answers' id='question-{$counter}-answersC' value='c' />
                    <label for='question-{$counter}-answers-C'> {$answerC} </label>
                    <br/>
                    <input type='radio' name='question-{$counter}-answers' id='question-{$counter}-answersD' value='D' />
                    <label for='question-{$counter}-answers-D'> {$answerD} </label>
                    <br/>
                    <input type='radio' name='question-{$counter}-answers' id='question-{$counter}-answersE' value='E' />
                    <label for='question-{$counter}-answers-E'> {$answerE} </label>

                </li>";

            $counter++;

        }

        $html[]="
            </ol>
        <input type='submit' name='submit' value='Submit' style='width:80px; height:30px; text-align:center; padding:0px;'>
        <input type='hidden' name='type' value='{$type}' />
        </form>";

        echo implode( PHP_EOL, $html );



    $result->close();

 }
}
/*
if( isset( $_POST['submit'] ) ){ 


$numQuestions=10;

for( $counter=0; $counter < $numQuestions; $counter++ ){ 
$answer=$_POST['question-'.$counter.'-answers']; 
$sql="insert into `question` (`type`,`value`) values ('".$type."','".$answer."')"; 
$db->query( $sql ); 
} 
}
*/

2 个答案:

答案 0 :(得分:1)

用于输出单选按钮的$counter初始化为值1但是当您在脚本末尾读取单选按钮的值时,您将从$counter = 0;开始。

请更改

for( $counter=0; $counter < $numQuestions; $counter++ ){

for( $counter=1; $counter <= $numQuestions; $counter++ ){ 

答案 1 :(得分:0)

您在评论中静态运行循环10次,如果数据库少于10条记录,该怎么办?你需要多次运行循环,因为db有记录,或者你可以在insert isset($_POST['question-'.$counter.'-answers'])之前放置条件{/ 1}}