обо всем по порядку, можете ли вы указать, что такое $ user и $ fetch_quiz_record?
без этой информации я сначала выбрал бы ссылку, в вашем случае это quiz_record с Student_Id, равным 4.
$statement = $conn->prepare("
SELECT
Quiz_Start,
Quiz_End,
Marks
FROM quiz_record
WHERE Student_Id = :student_id
");
// in your case $student_id would be 4
$res = $statement->execute([':student_id' => $student_id]);
$selected_quiz = $res->fetch(PDO::FETCH_ASSOC);
$count_statement = $conn->prepare("
SELECT
COUNT(*) as quiz_count
FROM quiz_record
WHERE
Marks < :mark_limit OR
(Marks = :mark_limit AND TIMESTAMPDIFF(SECOND, Quiz_Start, Quiz_End > :seconds_diff))
");
// depending on the datatype of Quiz_Start and Quiz_End
$quiz_start = \DateTimeImmutable::createFromFormat("Y-m-d H:i:s", $selected_quiz['Quiz_Start']);
$quiz_end = \DateTimeImmutable::createFromFormat("Y-m-d H:i:s", $selected_quiz['Quiz_End']);
$diff_in_seconds = abs($quiz_end->getTimestamp() - $quiz_start->getTimestamp());
$count_res = $count_statement->execute([
':mark_limit' => $selected_quiz['Marks'],
':seconds_diff' => $diff_in_seconds
]);
$fetched = $count_res->fetch(PDO::FETCH_ASSOC);
// $count should be the count
$count = $fetched['quiz_count'];
обратите внимание, что этот код должен быть в вашем слое данных . я могу вдаваться в подробности, если предоставлена более подробная информация.