2014-09-04 62 views
0

我從db中的問題表中獲取問題。
我使用唯一的form_id和user_id來保存question_id和answer_value來回答數據庫中的表。使用SQL中較早的值獲取現有表單

我希望用戶能夠在另一天更新表單。那麼,如何根據用戶早期的答案獲得並顯示answer_value已填寫的表單呢?

我這是怎麼顯示從數據庫中的問題:

<form action="/form/insert.php" method="POST"> 
$query = "SELECT * FROM questions where active=1 AND question_sort=1 ORDER BY sort_by"; 
$result = @mysqli_query($con, $query); 
if ($result) { 
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
    $body = $row['question_body']; 
    $question_id = $row['question_id']; 
     echo '<tr> 
     <td class="question">'.$body.'</td> 
     <td class="answer"><input type="radio" name="answer_value['.$question_id.']" value="0" ></td> 
     <td class="answer"><input type="radio" name="answer_value['.$question_id.']" value="1" ></td> 
     <td class="answer"><input type="radio" name="answer_value['.$question_id.']" value="2" ></td> 
      </tr>'; 
} 
</form> 

這是我如何節省每unicqe形式爲DB:

$question_id = mysqli_real_escape_string($con, $_POST['question_id']); 
$user_id = mysqli_real_escape_string($con, $_POST['user']); 
$form_id = mysqli_real_escape_string($con, $_POST['form_id']); 
$form_date = gmdate('Y-m-d H:i:s'); 

foreach ($_POST['answer_value'] as $question_id => $answer_id){ 

$sql="INSERT INTO answers (question_id, answer_value, user_id, form_id, form_date) 
VALUES ({$question_id}, {$answer_id}, $user_id, {$form_id}, '$form_date')"; 
+0

這似乎有點困惑。每個表單帖子都會爲數據庫存儲一組新的答案。您正在檢索所有這些文件,但必須有重複文件,或者您在插入時遇到錯誤('DUPLICAT KEY ...'),並且不存儲任何內容。 – 2014-09-04 14:17:00

+0

@Axel Amthor thx你的時間,我發佈的代碼僅用於從數據庫中獲取問題。 – user3906056 2014-09-04 19:45:12

回答

1

你必須通過值和匹配的答案循環你儲存的價值

<form action="/form/insert.php" method="POST"> 
<?php 
$vals=array(0,1,2); 
$query = "SELECT * FROM questions where active=1 AND question_sort=1 ORDER BY sort_by"; 
$result = @mysqli_query($con, $query); 
if ($result) { 
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
$body = $row['question_body']; 
$question_id = $row['question_id']; 
    echo '<tr> 
    <td class="question">'.$body.'</td>'; 
    foreach($vals as $x){ 
    $s=''; 
    if($x==$row['answer_value']){ 
     $s="selected"; 
    } 
    echo '<td class="answer"><input type="radio" name="answer_value['.$question_id.']"  value="'.$x.'" '.$s.'></td>'; 
    } 
echo '</tr>'; 
} 
} 
?> 
</form> 
+0

thx爲您的幫助。它解決了它,我不得不改變選擇檢查$ s變量。 Thx再次! :) – user3906056 2014-09-04 20:30:22