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>
@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
Welchen Fehlercode erhalten Sie, bevor Daten nicht eingefügt werden können? – simon
Wo ist User class Datei 'include/class.user.php' include Dateicode auch –