Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2008, 15:03   #1
Shadow_Wind
Пользователь
 
Аватар для Shadow_Wind
 
Регистрация: 10.10.2008
Сообщений: 30
По умолчанию MySql - перемешать варианты в базе

Все привет! Допустим, у меня есть программа проверки знаний - тест. Каким путём можно перемешать порядок вопросов каждый раз при загрузке теста в браузер? Как сделать чтобы вопросы не повторялись?
Shadow_Wind вне форума Ответить с цитированием
Старый 10.10.2008, 16:57   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

SELECT * FROM table ORDER BY rand()
Не повторялись как? при обновлении страницы или они в базе повторяются?
Стрелок-охотник

Последний раз редактировалось mv28jam; 10.10.2008 в 17:00.
mv28jam вне форума Ответить с цитированием
Старый 10.10.2008, 20:45   #3
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
SELECT * FROM table ORDER BY rand()
Не повторялись как? при обновлении страницы или они в базе повторяются?
а по какому принципу работает функция rand в sql ? имеется в виду от времени, итерации, или как-то еще ? и можно ли указать атрибут для какой-либо определенной рандомизации ? (когда требуется получить один и тот же перемешанный порядок значений несколько раз)
свободен...
wall66 вне форума Ответить с цитированием
Старый 13.10.2008, 10:58   #4
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

Мануалов к mysql в сети горы даже на русском, я уж не говорю на английском найти не проблема и почитать! И вообще СЛУЧАЙНЫЙ это СЛУЧАЙНЫЙ и прямо от ничего не зависит...
Цитата:
Сообщение от wall66 Посмотреть сообщение
(когда требуется получить один и тот же перемешанный порядок значений несколько раз)
Если несколько раз то порядок уже не случайный значит его надо запомнить!
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 13.10.2008, 12:59   #5
Shadow_Wind
Пользователь
 
Аватар для Shadow_Wind
 
Регистрация: 10.10.2008
Сообщений: 30
По умолчанию

Именно при обновлении (выборке) страницы, рандомайзер не предлагать)). Просто вариант может пойти на сетевую версию.
Интересно, стоит цель: мешать сами вопросы, мешать варианты ответов. Вот интересно!
Shadow_Wind вне форума Ответить с цитированием
Старый 13.10.2008, 16:37   #6
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Мануалов к mysql в сети горы даже на русском, я уж не говорю на английском найти не проблема и почитать! И вообще СЛУЧАЙНЫЙ это СЛУЧАЙНЫЙ и прямо от ничего не зависит...

Если несколько раз то порядок уже не случайный значит его надо запомнить!
случайных чисел на компьютерах не существует и существовать не может, это просто сложные алгоритмы и т д и т п...

в общем понятно, здесь думают что нельзя


п.с. зачем тогда это место если на все есть мануалы...
свободен...
wall66 вне форума Ответить с цитированием
Старый 15.10.2008, 13:39   #7
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

Цитата:
Сообщение от Shadow_Wind Посмотреть сообщение
Именно при обновлении (выборке) страницы, рандомайзер не предлагать)). Просто вариант может пойти на сетевую версию.
Интересно, стоит цель: мешать сами вопросы, мешать варианты ответов. Вот интересно!
1.Сделать запрос к базе с "рандомом"
2.Запомнить выбранные id вопросов для пользователя (например в сессию)
3.Далее выбирать те же вопросы в "рандомном" порядке из базы и так же ответы для них в "рандомном" порядке
ИТОГО:Вопросы те же но разный порядок вопросов и ответов на них
Я правильно понял что надо?


Цитата:
Сообщение от wall66 Посмотреть сообщение
случайных чисел на компьютерах не существует и существовать не может, это просто сложные алгоритмы и т д и т п...
ВЫ лично знаете хоть однин такой сложный алгоритм?! И что вам даст то что Вы его знает? Вы зная что он зависит от времени, будете заходить с точностью до мс на сервер чтобы получить определенную последовательность значений?

Ваш выпендрёж знанием основ информатики, здесь никого не впечатлит...
Цитата:
Сообщение от wall66 Посмотреть сообщение
в общем понятно, здесь думают что нельзя
Для меня это не проблема... проблема понять что именно хочет создатель поста, вот я с ним и общаюсь, чтобы это выяснить

Цитата:
Сообщение от wall66 Посмотреть сообщение
п.с. зачем тогда это место если на все есть мануалы...
В мануале написано "что" а здесь советуют "как"
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 16.10.2008, 21:24   #8
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
...
я не знаю ни основ информатики и ни одного из таких алгоритмов, все чем руководствуется программист - лишь логика, просто зная как все работает гораздо проще решать возникающие проблемы

время в используемых функциях пхп измеряется в секундах что не так уж мало для некоторых целей

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



автору же могу посоветовать использовать javascript для составления тестов и перемешивания в них значений, код будет гораздо более удобный, но менее защищенный

тем не менее, если всетаки нужно использовать пхп - перемешивание значений можно проводить на любом или даже на всех этапах выборки (обычно вопросы и ответы хранятся в разных таблицах), запоминать выбранные вопросы для проверки правильности ответов удобно с помощью прямого или зашифрованного ключа который можно вывести в скрытое поле формы
если ответы хранятся в той же таблице потребуется перемешивать местами поля в выборке отдельно для каждого вопроса (довольно просто реализуется циклом)

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

Последний раз редактировалось wall66; 16.10.2008 в 21:31.
wall66 вне форума Ответить с цитированием
Старый 17.10.2008, 09:19   #9
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

без претензий
Цитата:
Сообщение от wall66 Посмотреть сообщение
но в очередной раз убеждаюсь что от таких как вы не стоит ждать помощи
А я вообще ни от кого не жду помощи и мне её никто и не оказывал...
Цитата:
Сообщение от wall66 Посмотреть сообщение
принцип действия определенной функции в надежде получить нормальный ответ для использования его в оптимизации и совершенствовании кода
RAND(), RAND(N)

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.
mv28jam вне форума Ответить с цитированием
Старый 17.10.2008, 09:55   #10
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
А я вообще ни от кого не жду помощи и мне её никто и не оказывал...
очень вас жаль
Цитата:
Сообщение от mv28jam Посмотреть сообщение
...
спасибо
свободен...
wall66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Варианты курсора(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