2016-12-10 2 views
0

Я новичок в php, и в качестве теста я создал приложение для тестирования, которое загружает вопросы, хранящиеся в базе данных, и отображает их в таблицу с переключателями типа ввода для пользователя, чтобы выбрать ответ , Есть четыре таблицы. Вопросы, ответы, пользователи, userexam. Строки в каждой таблице содержат идентификатор в качестве индекса. У меня возникают проблемы с вложением значений в базу данных при нажатии кнопки отправки. Как бы я прокрутил и добавил каждое значение вопроса в базу данных, не определяя каждый идентификатор отдельно?Добавление значений полей в базу данных

<?php 

$getQuestions = " 
    SELECT 
     * 

    FROM 
     questions 
    WHERE questions.active = '1' 

    ORDER BY 
     questionID 
"; 
$qResult = mysql_query($getQuestions); 

$tableString = "<table> 
        <tr> 
         <th> 
          Questions 
         </th> 
         <th> 
          Answers 
         </th> 
        </tr>"; 

while ($qRow = mysql_fetch_assoc($qResult)) { 
    $getAnswers = " 
     SELECT 
      * 
     FROM 
      answers a 
     WHERE 
      a.questionID = '" . $qRow['questionID'] . "' 
     ORDER BY 
      a.questionID, 
      a.answerNumber 
    "; 
    $aResult = mysql_query($getAnswers); 

    $tableString .= "<tr> 
         <td>" . 
          $qRow['question'] . 
         "</td> 
         <td>"; 

    while ($aRow = mysql_fetch_assoc($aResult)) { 
     if ($aRow['correct'] == 1) { 
      $tableString .= "<input name=". $qRow['questionID'] ." 
           type='radio' 
          >" . 
           $aRow['answerValue'] . "<br />"; 
     } else { 

      $tableString .= "<input name=". $qRow['questionID'] ." 
           type='radio' 
          >" . 
           $aRow['answerValue'] . "<br />"; 
     } 
     $answer=$_POST['. $aRow["answerID"] .']; 
     $question=$_POST['. $qRow["questionID"] .']; 
     $student=$_POST['userID']; 

     // Insert data into mysql 
     $sql="INSERT INTO $userexam(answerID, questionID, userID)VALUES('$answer', '$question', '$student')"; 
     $result=mysql_query($sql); 
    } 


} 
$tableString .= "</table>"; 
echo $tableString; 
?> 
+0

Это все верно? $ sql = "INSERT INTO $ userexam (answerID, questionID, userID) VALUES ('$ answer', '$ question', '$ student')"; –

ответ

0

Используйте mysqli (mysql-улучшенный) во всех местах mysql.

<?php 
//Set database conection 
$conection=mysqli_connect('localhost','root','','Your database name'); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$getQuestions = " 
    SELECT 
     * 

    FROM 
     questions 
    WHERE questions.active = '1' 

    ORDER BY 
     questionID 
"; 
$qResult = mysqli_query($conection,$getQuestions); 

$tableString = "<table> 
        <tr> 
         <th> 
          Questions 
         </th> 
         <th> 
          Answers 
         </th> 
        </tr>"; 

while ($qRow = mysqli_fetch_assoc($qResult)) { 
    $getAnswers = " 
     SELECT 
      * 
     FROM 
      answers a 
     WHERE 
      a.questionID = '" . $qRow['questionID'] . "' 
     ORDER BY 
      a.questionID, 
      a.answerNumber 
    "; 
    $aResult = mysqli_query($conection,$getAnswers); 

    $tableString .= "<tr> 
         <td>" . 
          $qRow['question'] . 
         "</td> 
         <td>"; 

    while ($aRow = mysqli_fetch_assoc($aResult)) { 
     if ($aRow['correct'] == 1) { 
      $tableString .= "<input name=". $qRow['questionID'] ." 
           type='radio' 
          >" . 
           $aRow['answerValue'] . "<br />"; 
     } else { 

      $tableString .= "<input name=". $qRow['questionID'] ." 
           type='radio' 
          >" . 
           $aRow['answerValue'] . "<br />"; 
     } 
     $answer=$_POST['. $aRow["answerID"] .']; 
     $question=$_POST['. $qRow["questionID"] .']; 
     $student=$_POST['userID']; 

     // Insert data into mysql 
     $sql="INSERT INTO userexam(answerID, questionID, userID)VALUES('$answer', '$question', '$student')"; 
     $result=mysqli_query($conection,$sql); 
    } 


} 
$tableString .= "</table>"; 
echo $tableString; 
mysqli_close($conection); 
?> 
Смежные вопросы