powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: После перемешивания массива как пройти его до конца выдавая результат по одному
3 сообщений из 3, страница 1 из 1
PHP: После перемешивания массива как пройти его до конца выдавая результат по одному
    #40083545
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получил массив $ids из БД
сделал
Код: php
1.
shuffle($ids); 

чтобы его перемешать
теперь нужно при каждом нажатии кнопки next отобразить по порядку каждую запись из массива $ids, за один раз нужно показывать одну запись

Пока пришла мысль записать полученный массив в БД, но может есть способ по проще и получше?
...
Рейтинг: 0 / 0
PHP: После перемешивания массива как пройти его до конца выдавая результат по одному
    #40083641
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trom
Получил массив $ids из БД

trom
Пока пришла мысль записать полученный массив в БД, но может есть способ по проще и получше?
Например, добавить в таблицу нечто вроде индекса для сортировки - заполнить столбец случайными значениями.
...
Рейтинг: 0 / 0
PHP: После перемешивания массива как пройти его до конца выдавая результат по одному
    #40083652
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle
Например, добавить в таблицу нечто вроде индекса для сортировки - заполнить столбец случайными значениями.
Это можно, но в большинстве случаев не удобно - обычно нужно чтобы каждый юзер имел собственный случайный набор, а не все разом один общий.

Чаще всего, такая задача возникает при всяческих тестированиях. Выдавать испытуемому вопросы в разнобой (чтоб не списывал).
Стандартное решение - сессия с "логином" вначале и "логаутом" в конце теста. А список вопросов для этой сессии действительно проще хранить на сервере в базе в табличке типа:
Код: sql
1.
2.
3.
4.
5.
create table t(
  session_id,
  number_in_session,
  question_id,
  answer)

при логине заполняешь эту табличку очередным блоком, при логауте вычисляешь результат.

Как вариант - все тоже самое, но хранить в куках. В минусах - если юзер параноик и запретил куки, то ой. Ну и особо большой блок информации в куки не засунуть. Хотя для тестов это не особо критично. Больше сотни вопросов за раз в тест выдавать бессмысленно.

Как еще один вариант - перенести всю логику на клиента. То есть вначале сервер выдает список вопросов (целиком, то есть с текстом и картинками). А дальше целиком javascript - вопросы кладутся в массив, из него-же достаются, рисуются. Ответы собираются в другой массив и в конце теста отсылаются пачкой на сервер.



Ну а если перемешивание id'ов нужно для чего-то другого - поясни для чего. Варианты всегда есть.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: После перемешивания массива как пройти его до конца выдавая результат по одному
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]