connect_error) {
die("Savienojums neizdevās: " . $conn->connect_error);
}
// Sāk sesiju
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Iegūst testa ID no formas
$test_id = isset($_POST['test_id']) ? $_POST['test_id'] : null;
// Iegūst lietotāja ID no sesijas
$user_id = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null;
// Aprēķina kopējo rezultātu un jautājumu skaitu
list($total_score, $total_questions) = calculateTotalScore($_POST['answers']);
// Pārbauda, vai kopējais rezultāts nav null
if ($total_score !== null) {
// Ievieto testa rezultātu datu bāzē
$sql_insert_result = "INSERT INTO test_results (test_id, user_id, score) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql_insert_result);
// Pārbauda, vai vaicājums tika sagatavots veiksmīgi
if ($stmt) {
$stmt->bind_param("iii", $test_id, $user_id, $total_score);
// Izpilda vaicājumu
if ($stmt->execute()) {
// Parāda veiksmes ziņojumu
echo "
";
echo "
Testa rezultāts veiksmīgi iesniegts
";
echo "
Kopējais rezultāts: $total_score no $total_questions
";
echo "";
echo "
";
exit(); // Aptur turpmāko izpildi
} else {
echo "Kļūda iesniedzot testa rezultātu: " . $stmt->error;
}
} else {
echo "Kļūda sagatavojot vaicājumu: " . $conn->error;
}
} else {
echo "Kļūda: Kopējais rezultāts ir null.";
}
}
// Funkcija, lai aprēķinātu kopējo rezultātu pamatojoties uz atbildēm
function calculateTotalScore($answers) {
$totalScore = 0;
// Datubāzes savienojuma parametri
$servername = "127.0.0.1";
$username = "u353443769_beis";
$password = 'Te$t@dm1n';
$dbname = "u353443769_beis";
// Izveido savienojumu
$conn = new mysqli($servername, $username, $password, $dbname);
// Pārbauda savienojumu
if ($conn->connect_error) {
die("Savienojums neizdevās: " . $conn->connect_error);
}
// Iegūst pareizās atbildes no datu bāzes
$sql = "SELECT * FROM answers WHERE is_correct = 1";
$result = $conn->query($sql);
$correctAnswers = array();
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$correctAnswers[] = $row['id'];
}
} else {
echo "Datubāzē nav atrastas pareizās atbildes.";
return array(null, 0);
}
$totalQuestions = count($answers); // Kopējais jautājumu skaits
// Pārbauda, vai $answers ir masīvs
if (is_array($answers)) {
// Iterē caur katru izvēlēto atbildi
foreach ($answers as $question_id => $selectedAnswerId) {
// Pārbauda, vai izvēlētā atbildes ID ir pareizās atbildes masīvā
if (in_array($selectedAnswerId, $correctAnswers)) {
// Pievieno 1 punktu kopējam rezultātam par katru pareizo atbildi
$totalScore++;
}
}
}
// Aizver savienojumu
$conn->close();
return array($totalScore, $totalQuestions);
}
// Aizver savienojumu
$conn->close();
?>