2016-11-02 11 views
0

Wenn ich auf die Schaltfläche "Frage hinzufügen" klicke, werden die Daten nicht in meiner Datenbank gespeichert. Der Bildschirm zeigt nur: "Daten können nicht eingefügt werden" aus der Funktion.Daten werden nicht in die Datenbank eingefügt?

Funktionsdaten in der Datenbank (von der Benutzerklasse) einzufügen:

public function AddMultiQuestion($question,$answer,$type){ 

     $sql="INSERT INTO question SET Type='$type', Question='$question', Answer='$answer'"; 
     $result = mysqli_query($this->db,$sql) or die(mysqli_connect_errno()."Data cannot be inserted"); 
     return $result; 

    } 

PHP-Code innerhalb der Webseite:

<?php 

include_once 'include/class.user.php'; 
$user = new User(); 

if (isset($_REQUEST['addMulti'])){ 
    extract($_REQUEST); 

    if ($AnswerNo = '1'){ 
     $answer = $Answer1; 
    } elseif ($AnswerNo = '2') { 
     $answer = $Answer2; 
    } elseif ($AnswerNo = '3') { 
     $answer = $Answer3; 
    } elseif ($AnswerNo = '4') { 
     $answer = $Answer4; 
    } 

    $type = 'Multi'; 

    $addMultiQ = $user->AddMultiQuestion($question,$answer,$type); 

    if ($addMultiQ) { 
     // Registration Success 
     echo 'Question added.'; 
    } else { 
     // Registration Failed 
     echo 'Question failed to be added.'; 
    } 
} 

if (isset($_GET['q'])){ 
    $user->user_logout(); 
    header("location:login.php"); 
} 

if (isset($_REQUEST['SSButton'])) { 
    header("location:sentenceAnswer.php"); 
} 

if (isset($_REQUEST['PreviewButton'])) { 
    header("location:quizPreview.php"); 
} 
?> 

Der HTML-Code für die Webseite, wenn Sie interessiert sind:

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <meta name="viewport" content="width = device-width, initial-scale = 1"> 
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css"> 
    <link rel="stylesheet" type="text/css" href="assets/css/style.css"> 
    <style> 
     body{ 
      font-family:Arial, Helvetica, sans-serif; 
     } 
     #container{width:650px; margin: 0 auto;} 
    </style> 
    <script language="javascript" type="text/javascript"> 
     function submitQ() { 
      var form = document.reg; 
      if(form.Username.value == ""){ 
       alert("Enter username."); 
       return false; 
      } 
      else if(form.Password.value == ""){ 
       alert("Enter password."); 
       return false; 
      } 
      else if(form.type.value == "") { 
       alert("Enter type."); 
       return false; 
      } 
     } 
    </script> 
</head> 

<body background = "assets/background.jpg"> 
    <div id="container" class="container"> 
     <div id="header"> 
      <a href="login.php?q=logout">LOGOUT</a> 
     </div> 
     <div class="page-header"> 
      <h1>Quiz Maker</h1> 
     </div> 
     <div id="main-body" class="jumbotron"> 
      <form action="makeQuiz.php" method="post"> 
       <tr> 
        <div class="btn-group"> 
         <td><button class="btn btn-warning btn-lg" type="submit" name="addMulti" value="AddMultiQ">Add Question</button></td> 
         <td><button class="btn btn-warning btn-lg">Delete Question</button></td> 
        </div> 
       </tr> 
       <tr> 
        <div id="multiChoice"> 
         <table> 
          <h4>Multiple Choice</h4> 
          <tr> 
           <th>Insert Question:</th> 
          </tr> 
          <tr> 
           <td><input class="form-control" type="text" name="question" maxlength="100"></td> 
          </tr> 
          <tr>  
           <td>Answer 1:<input type="text" size="20" maxlength="100" name="Answer1"></td> 
          </tr> 
          <tr> 
           <td>Answer 2:<input type="text" size="20" maxlength="100" name="Answer2"></td> 
          </tr> 
          <tr> 
           <td>Answer 3:<input type="text" size="20" maxlength="100" name="Answer3"></td> 
          </tr> 
          <tr> 
           <td>Answer 4:<input type="text" size="20" maxlength="100" name="Answer4"></td> 
          </tr> 
          <tr> 
           <th>Correct Answer</th> 
          </tr>     
         </table> 
        </div> 
       </tr> 
       <tr> 
        <div class="form-group" id="dropdown"> 
         <Select class="form-control" type="text" name="AnswerNo" required> 
          <option value="1">1</option> 
          <option value="2">2</option> 
          <option value="3">3</option> 
          <option value="4">4</option> 
         </Select> 
        </div>         
       </tr> 
       <tr> 
        <div> 
         <td><button class="btn btn-warning btn-lg" type="submit" name="SSButton">Add Single-Sentence Question</button></td> 
        </div> 
       </tr> 
       <tr> 
        <div> 
         <td><button class="btn btn-warning btn-lg" type="submit" name="PreviewButton">Quiz Preview</button></td> 
        </div> 
       </tr> 
       <tr> 
        <div> 
         <td><button class="btn btn-warning btn-lg" type="submit" name="CreateButton">Create Quiz</button></td> 
        </div> 
       </tr> 
      </form> 
     </div> 
     <div id="footer"></div> 
    </div> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
</body> 

+0

@Kurt: Enthält Ihre MySQL-Tabelle nur diese drei c Spalten: "Typ", "Frage" und "Antwort"? Wenn es auch andere Spalten enthält und wenn eine davon nicht null sein kann (oder nicht automatisch inkrementiert ist), liegt ein Problem vor. Sie müssen auch Werte für diese Spalten in Ihrer MySQL-Abfrage angeben. – NavkarJ

+0

Welchen Fehlercode erhalten Sie, bevor Daten nicht eingefügt werden können? – simon

+0

Wo ist User class Datei 'include/class.user.php' include Dateicode auch –

Antwort

-1

Sie Syntax Tippfehler haben, haben Sie Apostroph mit $ varriable passieren, die nicht
Versuchen unter Code benötigt wird:

INSERT INTO questions 
(Type , Question , Answer) -- columns 
VALUES 
('$type' , '$question' , '$answer') -- values 
+0

Obwohl Sie Ihre Antwort so geändert haben, dass sie die Anführungszeichen enthält, lautet ihre Abfrage' INSERT INTOFrage SET Type =' $ type ', Question = '$ question', Answer = '$ answer'' ist gültige Syntax. Lesen Sie selbst http://dev.mysql.com/doc/refman/5.7/en/insert.html (siehe ** oder: **). –

+0

Ok, danke. –

-1

Ändern Sie diese

$sql="INSERT INTO question SET Type='$type', Question='$question', Answer='$answer'"; 

in diesem

$sql="INSERT INTO question SET Type='".$type."', Question='".$question."', Answer='".$answer."'"; 
+2

Beide sind genau gleich ... – jeroen

+1

Ich stimme @jeroen zu, und Sie haben in der Frage des OP etwas übersehen, zum Beispiel Aufgaben statt Vergleiche. –

Verwandte Themen