2015-12-29 8 views
5

データベースから質問と回答を得るフォームを作成していますが、いくつか質問がありますが、次の質問に進みます。どのように私はそれを可能にすることができますか?私はいくつかのヒントが必要です。私は、データベースにデータを保存し、次の質問を示し、別のPHPページを作るべきフォームを使用してフォームを作成してデータベースからの回答を保存する

echo "<form method='post'>"; 
 
\t $sql= "SELECT pid, qid, question_link FROM question ORDER BY qid ASC LIMIT 1"; 
 

 
$result = $mysqli->query($sql); 
 

 
if ($result->num_rows > 0) { 
 
    while($row = $result->fetch_array()) { 
 
\t $pid1= $row['pid']; 
 
\t $qid1= $row['qid']; 
 
\t 
 
\t echo $row['question_link']."<br>"; 
 
\t } 
 
    
 
} 
 

 
\t $sql1= "SELECT pid, qid, aid, answer, points FROM answer_det WHERE pid=$pid1 AND qid=$qid1"; 
 

 
$result1 = $mysqli->query($sql1); 
 

 
if ($result1->num_rows > 0) { 
 
    while($row = $result1->fetch_array()) { 
 
\t \t $answer= $row['answer']; 
 
\t \t $aid= $row['aid']; 
 
\t echo "<input type='radio' name='answers' value='".$answer."'/>".$answer."<br>"; 
 
\t } 
 
    
 
} 
 

 
echo "<input type='submit' value='Submit'></form>";

質問と回答を持って来るための私のコードは次のようになりますか?それを可能にする機能がありますか?

答えて

1

はケースによって異なります。あなたが途中で停止し、次回に戻ってそれを終了させたい場合は、DBが良い選択肢です。それ以外の場合は、セッションを使用して進行状況を保存できます。

<?php 
session_start(); 
if(isset($_POST['name'])){ 
    //store answers in session 
    $new = (!empty($_SESSION['session_name']))? $_SESSION['session_name'].'|'.$_POST['name'] : $_POST['name']; 
    //split session into an array 
    $_SESSION['session_name'] = $new; 
} 
else if(isset($_POST['clear'])){ 
    if(!empty($_SESSION['session_name'])){ 
     unset($_SESSION['session_name']); 
     echo "cleared"; 
    } 
    else 
     echo "Nothing to Clear"; 
} 
if(!empty($_SESSION['session_name'])){ 
    var_dump($_SESSION['session_name']); 
} 
//finish the procees here befor storing into database; 
//use foreach to itterate btw arrays and match anwers 
//$_SESSION['session_name'] = explode('|', $_SESSION['session_name']); 
//answer table $answers = array('a','b','c','d','e'); 
/* foreach($_SESSION['session_name'] as $key => $ans){ 
    if($ans == $answer[$key]){ 
     //right procesesor 
    } 
    else{ 
     //wrong procesesor 
    } 
} */ 
//handle the right and wrong process get to total score the store in db 


?> 
<form method="post" action="index.php"> 
    <input name="name" type="text" placeholder=""> 
    <input type="submit" value="submit"> 
</form> 
<form method="post" action="index.php"> 
    <input type="submit" name="clear" value="clear"> 
</form> 

セッションが毎回dbを照会せずにジョブを実行する方法の簡単なデモです。

+0

私はユーザーが戻ってくることを望んでいません。彼らは一度だけテストを行い、以前の質問 –

+0

に戻ることはできませんし、セッションを使って進行状況を保存します。 –

+0

あなたはどのようにセッションを使用するのですか?私はセッションではあまりよくありませんが、セッションのすべてを保存して、テストの最後にDBに保存する必要がありますか? –

関連する問題