首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据回答的问题总结要点

根据回答的问题总结要点
EN

Stack Overflow用户
提问于 2013-04-25 02:39:41
回答 1查看 101关注 0票数 0

该代码是针对uni课程的简答式测验。我想要做的是将学生的回答与存储在数据库中的答案进行匹配。匹配的答案(或关键字)算作分数。我在计算总分时遇到了麻烦。preg_match()结果已经正确。代码如下:

代码语言:javascript
复制
    <?php
    ini_set('display_errors',1);
    error_reporting(E_ALL ^ E_NOTICE);
    include("dbconn.php");
    session_start();

    if(isset($_POST['Submit']))
    {   
    $id = $_SESSION['tf1_sid'];
    $qno = $_POST['q_no'];
    ?>

    <head></head>
    <body>
    <form id="form1" name="form1" method="post" action="">
    <table width="590" border="1" cellpadding="2" align="center">
    <?php

    //db query to obtain i_id - to insert to RESULT table
    $sql_i = "SELECT i_id FROM ins_stud WHERE s_id = '$id'";
    $query_i = mysql_query($sql_i) or die("MySQL Error: " . mysql_error());
    $data_i = mysql_fetch_assoc($query_i);
    $ins_id = $data_i['i_id'];
    //echo $ins_id;

    //$correct = 0;
    $total = 0;
    $arr_ind = 1;
    $atext = array(1);
    $ans = array(1);

    for($i=1;$i<=$qno;$i++){
    $repStr = str_replace("1", $i, "answer_1");
    //echo "Question ". $i .": ". $repStr;
    $ans[] = $_POST[$repStr];
    //echo $ans;

    $sql_check = "SELECT q_ans FROM question WHERE q_id='$i'";
    $query_ch = mysql_query($sql_check) or die("MySQL Error: " . mysql_error());
    $data_ch = mysql_fetch_assoc($query_ch);
    $atext[] = $data_ch['q_ans'];

    // insert answer to table
    //$sql_eval = "INSERT INTO eval_set (s_id, q_id, response, response_value, created) VALUES ('" . $id . "', '" . $i . "', '" . $ans . "', '" . $correct . "', CURDATE())";
    //mysql_query($sql_eval) or die ("Error: " . mysql_error());        
    }

    // insert result to table
    //$sql_result = "INSERT INTO result (r_score, s_id, i_id) VALUES ('" . $total . "','" . $id . "','" . $ins_id . "')";
    //mysql_query($sql_result) or die ("Error: " . mysql_error());

    // db query for questions
    $sql_q  = "SELECT q_id, q_no, q_text, q_ans, q_help FROM question";
    $query_q = mysql_query($sql_q) or die("MySQL Error: " . mysql_error());

    // start loop for questions & answers
    $rad = 1;
    while($data_q = mysql_fetch_array($query_q, MYSQL_ASSOC)){     

    echo "<tr><td width='20' align='center' valign='top'><label><br><input name='q_no' size='1' type='hidden' value=". $data_q['q_no'] .">". $data_q['q_no'] ."</label></td>";
    echo "<td><p align='justify'>". $data_q['q_text'] ."<br />";

    if(preg_match_all("/". $ans[$arr_ind]. "/i", " . $atext[$arr_ind] . ")){
    echo "Something matches";
$total = total + 1;
}
    //else if (preg_match("/^$/", " . $atext[$arr_ind] . "))
    //echo "Empty string";
    else
    echo "Wrong";

    echo "<p align='justify'><b>YOUR ANSWER: </b>". $ans[$arr_ind]. "</p>";
    echo "<p align='justify'><label><b>SUGGESTED ANSWER:</b> <br><input name='answer_".$rad."' type='hidden' value=''>". $atext[$arr_ind] . "</label></p>";

    $rad++;
    $arr_ind++;
    }
    mysql_free_result($query_q);
    include("dbconn.php");

    echo "</table>";
    echo "<h2>" . $total . " questions correct. - Answer Review</h2>";  
    echo "</form>";
    ?>
    </body>
    </html>
    <?php
    }
    else
    {
    header("Location:s_login.php");
    }
    // close db connection
    mysql_close($dbconn);
    ?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-25 03:02:49

您缺少$ in:

代码语言:javascript
复制
$total = total + 1;

或者直接使用:

代码语言:javascript
复制
$total++;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16199720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档