php $_POST при сравнении со значением в переменной всегда выводит false

Вечер добрый, Уважаемые кодеры!

Помогите, пожалуйста, разобраться в следующем..

Есть задача - сделать онлайн тест с вопросами и вариантами ответа, из которых только 1 верный, остальные - ложные.

Варианты ответов, которые в свою очередь хранятся в БД, выводятся в форме кнопок, соответственно, по нажатию на кнопку делается запрос на сравнение варианта ответа со значением из базы, после чего выдается сообщение об успехе или не успехе и выводится следующий вопрос

Решить эту задачу у меня получилось только при выводе лишь одного конкретного вопроса/записи из БД, но, если выводить вопросы/записи из БД в случайном порядке, нижеследующий код даже при правильном ответе говорит Пользователю, что тот ошибся

        $select=mysql_query("SELECT DISTINCT ID FROM table");
        $count=mysql_num_rows($select);
        $random=rand(1, $count);

        $select_random=mysql_query("SELECT ID
                                          ,QUESTION
                                          ,ANSWER_RIGHT -- Верный ответ, который сравнивается в фоне
                                          ,ANSWER_1 -- Верный ответ, который выводим с остальными вариантами
                                          ,ANSWER_2
                                          ,ANSWER_3
                                    FROM table
                                    WHERE ID = $random");
        $echo=mysql_fetch_assoc($select_random);

        /* тут должен быть кусочек кода по перемешиванию вариантов ответа, чтобы правильный ответ не
выводился всегда первым, но его тут нет, потому как суть вопроса в другом*/

        echo '<div>'.$echo['QUESTION'].'</div><p>
              <div>
                   <form method="post">
                         <input type="submit" name="name" value="'.$echo['ANSWER_1'].'"><p>
                         <input type="submit" name="name" value="'.$echo['ANSWER_2'].'"><p>
                         <input type="submit" name="name" value="'.$echo['ANSWER_3'].'">
                         <input type="hidden" name="id" value="'.$echo['ID'].'">
                   </form>
              </div>';

        if (isset($_POST['name'])) {
                                    $id=$_POST['ID'];
                                    $select_query=mysql_query("SELECT ANSWER_RIGHT FROM table WHERE ID = $id");
                                    $echo_2=mysql_fetch_assoc($select_query);
                                    if ($_POST['name'] == $echo_2['ANSWER_RIGHT']) {echo 'Правильно';}
                                    else {echo 'Неправильно';}
                                   }
        else echo 'Выберите вариант ответа';

У меня есть предположение, что все дело в том, что при нажатии на кнопку начинает строится DOM, в котором сначала выбирается случайное значение уже для след. вопроса и сравнивается с пред. вопросом, в результате чего, какой бы вариант ответа Пользователь не выбрал, он всегда якобы будет не прав

Как это исправить, ума не приложу.. промучившись приличное время прошу совета у вас :)

Заранее спасибо!


Ответы (2 шт):

Автор решения: Denis640Kb

Вот смотрите - это просто показать, ответ потом удалю:

<?php
$echo['ANSWER_1'] = '1?';
$echo['ANSWER_2'] = '4?';
$echo['ANSWER_3'] = '5?';
$echo['ANSWER_RIGHT'] = $echo['ANSWER_2'];

echo '
<div>
<div>2+2 = ?</div><br>
    <form method="post">
        <input type="submit" name="name" value="'.$echo['ANSWER_1'].'"><p>
            <input type="submit" name="name" value="'.$echo['ANSWER_2'].'"><p>
            <input type="submit" name="name" value="'.$echo['ANSWER_3'].'">
    </form>
</div>';
?>
<?php
if (isset($_POST['name'])) {
    if ($_POST['name'] == $echo['ANSWER_RIGHT']) {
        echo 'Правильно';
    } else {
        echo 'Неправильно';
    }
}

В том случае, если данные совпадают, то всё работает корректно.

→ Ссылка
Автор решения: Json

Проблема в том, что из Бд сразу выбирается случайная запись и ответ с другого вопроса сравнивается с ответом этой записи. Перед этой строкой if ($_POST['name'] == $echo['ANSWER_RIGHT']) должен быть ещё один селект с выбором из БД записи по ID предыдущего вопроса. ID этого вопроса можно отправлять в поле <input type="hidden" name="id" value="'. $echo['ID']. '" />

→ Ссылка