Помогите сделать выборку из БД. Сделал кучу вложенных циклов. Вроде все работает, но в некоторых случаях получается не то что надо. Причем не понятно почему.
Дела обстоят так:
Есть куча конкурсантов, все делятся по категориям, подкатегориям и возрасту.
Например 1-1-1 = 1 категория, 1 подкатегория, 1 возраст, там 100 участников
Или 7-14-4 = 7 категория, 14 подкатегория, 4 возраст, там 50 участников,
а в 15-15-2, может быть всего один участник.
Где то участников вообще нет.
У каждого участника есть Фамилия и какое то кол-во голосов.
Что бы вывести всех участников
я делаю так:
while($w_cat < 20) { while($w_sub < 18) { while($age < 6) { $query = "SELECT * FROM tbl WHERE w_cat=$w_cat and w_sub=$w_sub and age=$age ORDER BY work_count DESC";
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
fiver
Помогите сделать выборку из БД. Сделал кучу вложенных циклов. Вроде все работает, но в некоторых случаях получается не то что надо. Причем не понятно почему.
Дела обстоят так:
Есть куча конкурсантов, все делятся по категориям, подкатегориям и возрасту.
Например 1-1-1 = 1 категория, 1 подкатегория, 1 возраст, там 100 участников
Или 7-14-4 = 7 категория, 14 подкатегория, 4 возраст, там 50 участников,
а в 15-15-2, может быть всего один участник.
Где то участников вообще нет.
У каждого участника есть Фамилия и какое то кол-во голосов.
Что бы вывести всех участников
я делаю так:
А мне надо вывести работы победителей в каждой категории, подкатегории и возрасте, но с такими условиями:
1. Всего - 3 места;
2. Если участники получили одинаковое к-во голосов, то они делят это место, неважно сколько их.
3. Один участник награждается 1 раз в одной номинации и не может занять несколько мест, только одно самое высокое.
ДЛЯ ПРИМЕРА ИМЕЕМ в 1-1-1
Вася - 200 голосов
Петя - 200 голосов
Коля - 200 голосов
Вася - 150 голосов
Вася - 100 голосов
Дима - 50 голосов
Толя - 50 голосов
Женя - 25 голосов
Гоша - 10 голосов
Результат:
1 место - Вася - 200 голосов
1 место - Петя - 200 голосов
1 место - Коля - 200 голосов
2 место - Дима - 50 голосов
2 место - Толя - 50 голосов
3 место - Женя - 25 голосов
Т.е. Вася по идее занял и 2 место и 3, но так как у него уже 1 место, то все, он убирается с других мест, а номинируются те, кто ниже его.
Link to comment
Share on other sites
14 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.