I am making an online quiz portal in which, the selected data is sent to php file and in php file, comparison is done between selected data and data which is coming from database..
if both are identical, then value of obtained_marks from database is fetched and again stored after increament of 1 to it.. it works fine when first value is false and 2nd value true.
But when both values are correct , it is not working.means it is updating Value of obtained_marks to 1 but ..it has to be 2.. i am getting trouble in solving this..plz help..!
sorry for my bad english.
answer.php
<?php
session_start();
require_once 'database.php';
$username = $_SESSION['user'];
$stmt = $db->prepare("UPDATE result SET obtained_marks = 0 WHERE username = ?");
$stmt->execute(array($username));
$ans1 = $_POST['set1q1'];
$ans2 = $_POST['set1q2'];
$set_no = 1;
$subject = "php";
$stmt = $db->prepare("SELECT correct_answer FROM answer WHERE subject = ? AND set_no = ?");
$stmt->execute(array($subject,$set_no));
$row = $stmt->fetchall(PDO::FETCH_COLUMN);
if($row[0] === $ans1)
{
$stmt = $db->query("SELECT obtained_marks FROM result WHERE subject = '$subject' AND set_no = '$set_no'");
$row = $stmt->fetch(PDO::FETCH_COLUMN);
$row = $row + 1;
$stmt = $db->prepare("UPDATE result SET obtained_marks = ? WHERE username = ?");
$stmt->execute(array($row,$username));
}
if ($row[1] === $ans2) {
$stmt = $db->query("SELECT obtained_marks FROM result WHERE subject = '$subject' AND set_no = '$set_no'");
$row = $stmt->fetch(PDO::FETCH_COLUMN);
$row = $row + 1;
$stmt = $db->prepare("UPDATE result SET obtained_marks = ? WHERE username = ?");
$stmt->execute(array($row,$username));
}
Aucun commentaire:
Enregistrer un commentaire