Урок 2. Получение данных выбранного теста

Дата публикации: 09-09-2014

создание системы тестирования

От автора: В предыдущем уроке мы вывели на страницу список всех доступных тестов. Задачей текущего урока будет получение массива вопросов и ответов выбранного пользователем теста. При этом мы будем получать все вопросы и ответы к ним выбранного теста. На мой взгляд, это снизит нагрузку на сервер, по сравнению с вариантом, когда у сервера запрашиваются вопросы по одному.


скачать урок скачать исходники

Все уроки курса:

Метки: ,

Комментарии (20)

  1. librusmc@rambler.ru

    Я наверное единственный начинающий, кто смоотрит, поэтому от меня вопрос: а если я хочу для каждого теста создавать свой массив, например, для Теста2, у меня будут questions2, answers2 и т.д., как это записать в функцию. я пробовал продублировать уже созданную функцию под questions, answers, только заменить везде на questions2, answers2, но ничего не вышло…

    • Андрей Кудлай

      В этом случае не получится просто изменить одну функцию, придется изменить всю логику работы тестов. Если Вы начинающий, тогда рекомендую подтянуть для начала знания по PHP и MySQL, поскольку без них решить поставленную задачу будет проблематично.

  2. librus

    спасибо :) . так и делаю, просто поставленная задача по срокам оказалась трудновыполнимой, НО благодаря видеоурокам — возможной. я так и делаю — начал смотреть ваш Курс по PHP программированию (17 уроков). надеюсь, что освою. эххх…

  3. sa_98_sa@mail.ru

    Пишет не определенный get_test_data

  4. sa_98_sa@mail.ru

    Примечание : неопределенная переменная: test_id в C: \ OSPanel \ domains \ localhost \ engsearch \ test \ functions.php в строке 23

    Неустранимая ошибка : вызов неопределенной функции get_test_data () в C: \ OSPanel \ domains \ localhost \ engsearch \ test \ index.php в строке 13

    • Андрей Кудлай

      Ошибка говорит о том, что вызываемая функция либо не определена, либо недоступна. То же самое относится и к переменной. Поэтому проверяйте их доступность. Также можете сравнить Ваш код с кодом из исходников, там такой проблемы быть не должно.

  5. babdisamat@bk.ru

    Cannot re-assign auto-global variable _POST in C:\OSPanel\domains\localhost\testing\functions.php on line 93

    такая ошибка выводится ?

    • Андрей Кудлай

      С версии PHP 5.4 нельзя использовать глобальные переменные параметром функции. Поэтому просто удалите параметр $_POST из объявления функции и ее вызова.

  6. babdisamat@bk.ru

    Андрей я хочу сделать админку, возможно ли что когда отправляю одну форму(форма содержит вопрос, ответ) возможно ли по форме отправить данные чтобы вопросы падали в таблицу вопрос а ответы в таблицу ответы! и да как получить id вопроса, БД использую оракл! как в оракле реализовать ?

    • Андрей Кудлай

      Возможно. Два запроса: первый сохраняет вопрос в таблицу вопросов и возвращает ID сохраненной записи. Второй запрос использует этот ID и сохраняет во вторую таблицу варианты ответов. Функцию для получения ID добавленной записи я подсказал в предыдущем ответе.

  7. babdisamat@bk.ru

    хотел реализовать админку для добавления вопросов, опишите логику реализации!

    • Андрей Кудлай

      Аналогично предыдущему ответу, можно посмотреть тот же Каталог товаров, где начиная с 52-го урока показано создание админки.

  8. babdisamat@bk.ru

    Андрей такой вопрос я реализую админку допустим у меня такая проблема я там добавляю в поле ответы использую jquery append , когда отправляю по форме добавляется всего лишь один поле ответа остальные тупо исчезают не добавляются как решить? подскажите буду благодарен !

    • Андрей Кудлай

      Скорее всего, у этих полей одинаковое значение атрибута name. Значение должно быть разным или, еще лучше, массивом, например так: name=»answer[]«

  9. babdisamat@bk.ru

    так и сделал, а как их значение получить я перебираю foreach но данные не падают туда
    if(isset($_POST['otvet']))
    {

    // $ans = $_POST['ans'];
    $id_quest = 1;
    $otvet = 1;

    $sql_add_res = «Insert into RESULT_P(ID, ID_QUESTION, ANSWER, CORRECT_ANSWER) values (SEQ_RES.NEXTVAL, ‘$id_quest’, ‘$data’, ‘$otvet’)»;
    $list_add_res = $db -> execute($sql_add_res);
    }

    • Андрей Кудлай

      Распечатайте массив POST и посмотрите, так ли Вы сделали. HTML код Вы не показали, поэтому сказать так ли Вы сделали — не могу. Собственно, и foreach я в Вашем коде не вижу, а вижу только ответ в единственном экземпляре, который Вы и помещаете в запрос… никакого множества я здесь не вижу.

      • babdisamat@bk.ru

        Введите свой ответ

        кусок кода где я добавляю с помощью append ответы

        • Андрей Кудлай

          Это все тот же код PHP, кода HTML с полем формы я не вижу здесь. В любом случае, нужен живой код, только с ним можно провести отладку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree