Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 5
Регистрация: 14.12.2015
Сообщений: 186

Как строки из mysql выводить на разных страницах, либо выводить динамично

04.07.2019, 16:22. Показов 743. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно сделать тест:


Вот, что мне удалось сделать:


Вот моя таблица MySQL, называется questions:


Вот данные из неё:


У меня есть такой код questions.php, который выводит все вопросы на одной странице:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
    class Questions extends Database{
        
        protected function getAllQuestions($text){
            $sql = "SELECT * FROM questions WHERE id_topic=".$text;//переменная id_topic хранит ид теста, так как их может быть множество в базе данных
            $result = $this->connect()->query($sql);//выполняем запрос в базу данных
            $numRows = $result->num_rows;//получаем кол-во строк в таблице
            
            if($numRows > 0){
                while($row = $result->fetch_assoc()){//построчно записываем данные из таблицы в массив
                    $data[] = $row;
                }
                return $data;//возвращаем массив с данными из таблицы
            }
        }
 
        
        public function showAllQuestions($text){
            $datas = $this->getAllQuestions($text);//берём массив с данными из таблицы
            
            foreach($datas as $data){//выводим значения из массива
                echo "<p>".$data['question']."</p>";
                echo "<select name=answer[]>";//сюда после того, как пользователь нажал на кнопку next question записываются его ответы
                echo "<option value=ca>".$data['correct_answer']."</option>";
                echo "<option value=ia1>".$data['incorrect_answer1']."</label>";
                echo "<option value=ia2>".$data['incorrect_answer2']."</label>";
                echo "<option value=ia3>".$data['incorrect_answer3']."</label>";
                echo "</select>";
            }
            
        }   
    }
?>
Отображаем вопросы на этой странице startTest.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
    include_once 'includes/database.php';
    include_once 'includes/questions.php';
?>
<!doctype html>
<html>
    <head>
        <title>TEST</title>
        <meta charset="utf-8">
    </head>
    <body>
        <form name="answer" action="results.php" method="POST"><!-- пока что результаты передаются на последнюю страницу -->
            <div>
                <?php
                    if(empty($_POST['choosenTopic'])){//тут информация с первой страницы, где мы выбираем конкретный тест 
                        $answer = $_POST['answer[]'];
                        echo "QUESTIONID:".$answer;
                    }else{
                        $text = $_POST['choosenTopic'];//та самая переменная, которая хранит id_topic(то есть ид выбранного теста), которая передаётся в функцию,
                    }
                    $questions = new Questions();
                    $questions->showAllQuestions($text);    
                ?>
            </div>  
            <button type="submit" name="submit">Next Question</button>
        </form>
    </body>
</html>

Вопрос 1: Как вывести только один вопрос на странице, после чего пользователь нажмёт на кнопку Next Question и попадёт на следующую страницу, где будет следующий вопрос и так пока не ответит на все вопросы?
Вопрос 2: Либо можно сделать динамически, чтобы пользователь оставался на той же странице, и не обновлял всю страницу после нажатия на next question, соответственно Как сделать динамически?


Моё предположение, что нужно использовать json, вот только где его потом хранить, чтобы с другой страницы обращаться к нему, да и не знаю, как тут его использовать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.07.2019, 16:22
Ответы с готовыми решениями:

Как выводить информацию из разных таблиц Mysql на одну страницу (php), в список
Необходимо, чтоб к одному значению в базе данных прикреплялись значения из других таблиц. Например: Иванов (таблица - клеинты) Новгород...

Как на основании выбранной строки в DBLookupComboBox выводить в label какое либо число?
Привет, подскажите как на основании выбранной строки в DBLookupComboBox выводить а label какое либо число

Как в Джумле выводить/убирать модули на страницах?
Здравствуйте! Я новичок, и вопрос у меня, наверное, совсем глупый - но я уже третий день мучаюсь и не могу разобраться. С изменением...

4
68 / 60 / 10
Регистрация: 07.03.2019
Сообщений: 657
04.07.2019, 22:37
Цитата Сообщение от blocker147 Посмотреть сообщение
Как сделать динамически?
Создать в цикле несколько div столько же что и вопросов.
После нажатия на next , скрывать активный и выводить следующий.

Здесь нужно использовать JavaScript, лучше даже jQuery
1
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
05.07.2019, 21:41
Цитата Сообщение от server_net Посмотреть сообщение
лучше даже jQuery
А еще лучше vue.js
1
0 / 0 / 5
Регистрация: 14.12.2015
Сообщений: 186
05.07.2019, 22:42  [ТС]
выводить по очереди более менее получилось, с помощью jQuery.
Возник ещё один вопрос, в моём примере выводятся ответы таким образом, что первый всегда правильный:
PHP
1
2
3
4
echo "<option value=ca>".$data['correct_answer']."</option>";
echo "<option value=ia1>".$data['incorrect_answer1']."</label>";
echo "<option value=ia2>".$data['incorrect_answer2']."</label>";
echo "<option value=ia3>".$data['incorrect_answer3']."</label>";
Как я могу тут с помощью функции рандома выводить ответы в разном порядке.

И не много не по теме вопрос, есть такой скрипт:
JavaScript
1
2
3
4
var a = 5;
var txt = "<?php echo add(1, 3) ?>";//как сюда передать значение из переменной 'a'
var txt = "<?php echo add(" + a + ", 3) ?>";//таким образом он в функцию кидает символ 'a' 
//а не значение, которое хранится в переменной 'a'
Видел такую функцию, но она ничего не изменила:
JavaScript
1
Number(a);
PHP
1
2
3
function add($a, $b){
return $a +$b;
}
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
05.07.2019, 22:59
Цитата Сообщение от blocker147 Посмотреть сообщение
/таким образом он в функцию кидает символ 'a'
//а не значение, которое хранится в переменной 'a'
именно, потому что сначала выполняется php(на сервере), а потом на клиенте js
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2019, 22:59
Помогаю со студенческими работами здесь

Выводить поле либо в Верхнем регистре либо в нижнем, в зависимости от передаваемого аргумента
Здравствуйте! Задание такое:в столбец, нужно выводить содержимое поля Name_Costs либо в Верхнем регистре либо в нижнем в зависимости от...

Не выводить описание раздела на страницах фильтра?
Доброго дня уважаемые форумчане! Подскажите как решить проблему. На данный момент вывод описания раздела каталога битрикса...

Как выводить в pictureBox определенную фотографию в зависимости от значения какой-либо переменной
Есть переменная value, в зависимости от того какое значение она принимает в pictureBox нужно выводить определенную картинку, как это...

Как написать программу которая будет выводить символы кратные двум либо чётные?
Всем привет ребята! Нужна ваша помощь! Нужно написать циклическую программу которая будет выводить символы кратные двум либо четные при...

Как правильно выводить данные из бд mysql?
Есть код: &lt;?php mysql_connect ('localhost', 'user', 'password') or die (&quot;Соединение не установлено!&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru