давайте я попробую описать в словах что я понял и как работает ваш код.
А вы уже поправите где неверно.
$q_id = isset($_POST['quest'])?(int)$_POST['quest']:0;
$a_id = isset($_POST['answer'])?(int)$_POST['answer']:false;
$query = "SELECT a_correct, q_quest, (SELECT MAX(q_id) FROM question) m_id
FROM answer
LEFT JOIN question USING(q_id)
WHERE q_id=$q_id
AND a_id=$a_id";
И так у нас вопрос под идентификатором #3
На данный момент у нас выводит только 1 вариант ответа.
Мы отвечает на вопрос, и постом у нас передается два значения:
- $q_id - это идентификатор вопроса.
- $a_id - это идентификатор ответа который мы дали.
В 2х переменных у нас хранятся две цифры это 3 и 14.
Делаем запрос (с ним у меня проблема я его так и не могу толком понять, но на интелектуальном уровне попробую объяснить):
WHERE q_id=$q_id and a_id=$a_id - основываясь на данных которые пришли постом : где
q_id равен 3 и
a_id равен 14 .
Получается этим мы выбираем поле a_correct напротив ответа под 14 идентификатором.А у нас там 0
В массив
$row['a_correct'] у нас попало 0.
И когда мы сравниваем
a_correct ==1 у нас выдается сообщение....
и еще
LEFT JOIN question USING(q_id) это будет выглядеть как:
для соединения используем поля
q_id присутствующие в обеих таблицах. Без
USING просто таблицы не объединяться? и выдаст ошибку или как?
К чему в SELECT
q_quest?