Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: случайная выборка и равномерная пропорция(вопрос башкастым)
 
 автор: Shokan   (05.02.2007 в 17:19)   письмо автору
 
 

начал делать программу тестирования учеников...
в моей таблице есть вопросы и к каждому вопросу распределены уровни.
можно ли на sql запросе выбрать случайных 30 строк(в моем случае это вопросы) при том распределить их равномерно по уровню?
как можно режить эту задачу?

   
 
 автор: Loki   (05.02.2007 в 17:28)   письмо автору
 
   для: Shokan   (05.02.2007 в 17:19)
 

то есть чтобы сумма уровней в выборке была равна заданной?

   
 
 автор: cheops   (06.02.2007 в 00:22)   письмо автору
 
   для: Shokan   (05.02.2007 в 17:19)
 

Равномерность чем определяется? Какой критерий?

   
 
 автор: Shokan   (12.02.2007 в 09:31)   письмо автору
 
   для: cheops   (06.02.2007 в 00:22)
 

Есть такие таблицы(для программы цеста учеников):

<b>
1 таблица(voprosy)
||id || vopros || tema_id || pod_tema_id||
x x x x
</b>

значение последних 2 полей хранится в отдельном таблице с соответствующими именами.
мне нужно сделать что бы выходило 30 случайных, не повторяющих вопроса. это я решил с помощю sql запроса

select * from voprosy where tema_id='$tema_id'  order by rand() group by id limit 30

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

   
 
 автор: Trianon   (12.02.2007 в 10:21)   письмо автору
 
   для: Shokan   (12.02.2007 в 09:31)
 

что такое "равномерная пропорция"?

   
 
 автор: Shokan   (14.02.2007 в 18:09)   письмо автору
 
   для: Trianon   (12.02.2007 в 10:21)
 

Это значит на каждый вопрос разделялся ровная количество подтем.

   
 
 автор: Reша   (15.02.2007 в 12:42)   письмо автору
 
   для: Shokan   (14.02.2007 в 18:09)
 

Ума не приложу, как вопрос "Сколько будет 2+2" разделить на 20 подтем.

Или вы всё совсем неправильно формулируете, или вам нужно полностью пересмотреть Вашу БД.

Насколько я понял, вам нужно получить в тесте по определенной теме 10 вопросов по 10 подтемам?

Если так, то у вас будут таблицы:
topics(id_topic, name)
subtopics(id_subtopic, id_topic, name)
questions(id_question, id_subtopic, question)

Чтобы получить тест по теме с id_topic = 3 из 10 вопросов:


SELECT questions.*
FROM questions, subtopics
WHERE subtopics.id_topic = 3 AND
subtopics.id_subtopic = questions.id_subtopic
GROUP BY subtopics.id_subtopic
ORDER BY rand() LIMIT 10

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования