|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.10.2008, 15:03 | #1 |
Пользователь
Регистрация: 10.10.2008
Сообщений: 30
|
MySql - перемешать варианты в базе
Все привет! Допустим, у меня есть программа проверки знаний - тест. Каким путём можно перемешать порядок вопросов каждый раз при загрузке теста в браузер? Как сделать чтобы вопросы не повторялись?
|
10.10.2008, 16:57 | #2 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
SELECT * FROM table ORDER BY rand()
Не повторялись как? при обновлении страницы или они в базе повторяются?
Стрелок-охотник
Последний раз редактировалось mv28jam; 10.10.2008 в 17:00. |
10.10.2008, 20:45 | #3 |
Участник клуба
Регистрация: 04.10.2008
Сообщений: 1,485
|
а по какому принципу работает функция rand в sql ? имеется в виду от времени, итерации, или как-то еще ? и можно ли указать атрибут для какой-либо определенной рандомизации ? (когда требуется получить один и тот же перемешанный порядок значений несколько раз)
свободен... |
13.10.2008, 10:58 | #4 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Мануалов к mysql в сети горы даже на русском, я уж не говорю на английском найти не проблема и почитать! И вообще СЛУЧАЙНЫЙ это СЛУЧАЙНЫЙ и прямо от ничего не зависит...
Если несколько раз то порядок уже не случайный значит его надо запомнить!
Стрелок-охотник
|
13.10.2008, 12:59 | #5 |
Пользователь
Регистрация: 10.10.2008
Сообщений: 30
|
Именно при обновлении (выборке) страницы, рандомайзер не предлагать)). Просто вариант может пойти на сетевую версию.
Интересно, стоит цель: мешать сами вопросы, мешать варианты ответов. Вот интересно! |
13.10.2008, 16:37 | #6 | |
Участник клуба
Регистрация: 04.10.2008
Сообщений: 1,485
|
Цитата:
в общем понятно, здесь думают что нельзя п.с. зачем тогда это место если на все есть мануалы... свободен... |
|
15.10.2008, 13:39 | #7 | ||
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Цитата:
2.Запомнить выбранные id вопросов для пользователя (например в сессию) 3.Далее выбирать те же вопросы в "рандомном" порядке из базы и так же ответы для них в "рандомном" порядке ИТОГО:Вопросы те же но разный порядок вопросов и ответов на них Я правильно понял что надо? Цитата:
Ваш выпендрёж знанием основ информатики, здесь никого не впечатлит... Для меня это не проблема... проблема понять что именно хочет создатель поста, вот я с ним и общаюсь, чтобы это выяснить В мануале написано "что" а здесь советуют "как"
Стрелок-охотник
|
||
16.10.2008, 21:24 | #8 |
Участник клуба
Регистрация: 04.10.2008
Сообщений: 1,485
|
я не знаю ни основ информатики и ни одного из таких алгоритмов, все чем руководствуется программист - лишь логика, просто зная как все работает гораздо проще решать возникающие проблемы
время в используемых функциях пхп измеряется в секундах что не так уж мало для некоторых целей я лишь спросил принцип действия определенной функции в надежде получить нормальный ответ для использования его в оптимизации и совершенствовании кода, но в очередной раз убеждаюсь что от таких как вы не стоит ждать помощи автору же могу посоветовать использовать javascript для составления тестов и перемешивания в них значений, код будет гораздо более удобный, но менее защищенный тем не менее, если всетаки нужно использовать пхп - перемешивание значений можно проводить на любом или даже на всех этапах выборки (обычно вопросы и ответы хранятся в разных таблицах), запоминать выбранные вопросы для проверки правильности ответов удобно с помощью прямого или зашифрованного ключа который можно вывести в скрытое поле формы если ответы хранятся в той же таблице потребуется перемешивать местами поля в выборке отдельно для каждого вопроса (довольно просто реализуется циклом) чтобы вопросы не повторялись нужно использовать способы перемешивания не допускающие повторений (один из них это какраз функция rand, но она является далеко не лучшим вариантом перемешивания значений, другие легко найти поиском), также необходимо чтобы их количество превышало выводимый лимит свободен... Последний раз редактировалось wall66; 16.10.2008 в 21:31. |
17.10.2008, 09:19 | #9 | |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
без претензий
А я вообще ни от кого не жду помощи и мне её никто и не оказывал... Цитата:
Returns a random floating-point value v in the range 0 <= v < 1.0. If a constant integer argument N is specified, it is used as the seed value, which produces a repeatable sequence of column values. In the following example, note that the sequences of values produced by RAND(3) is the same both places where it occurs.
Стрелок-охотник
Последний раз редактировалось mv28jam; 17.10.2008 в 09:30. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Варианты курсора(Delphi) | IGoDoVaN | Помощь студентам | 25 | 18.02.2009 21:48 |
перебрать все варианты перестановки строк | sv_mix | Помощь студентам | 2 | 26.07.2008 17:48 |
MySQL нужна библ. для Visual C++ (MySql++) | Alexoid | Visual C++ | 8 | 07.05.2008 18:29 |
Фильтр в базе | Versifikator | БД в Delphi | 3 | 18.04.2008 10:35 |
Поиск по базе | Антон Шестаков | БД в Delphi | 1 | 22.01.2008 20:32 |