imho.ws |
![]() |
![]() |
![]() |
# 3 | |
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
![]() А если влом разбираться, то вкратце: Сначала пользователю должна выдаться формочка с возможностью выбора какого-то варианта ответа (делается <input type=radio> или <input type=checkbox>, если вариантв может быть несколько), затем кнюпель <input type=submit>, потом опять эта (или уже другая страничка) получает данные, записывает их куда-либо (либо в базу, либо в файл, смотря что тебе нужно), потом в ней же читается файл или база, выбираются в массив все варианты с количеством ответов, а затем строится график (если нужно не слишком наворочено, то я например, делаю простую табличку в которой ячейки <td> имеют определенную длину, закрашиваю их в разные цвета, для красоты можно еще и ширину ячейки поменьше сделать - смотрится лучше), и соответственно либо перед полоской, либо после нее пишем, что за пункт ![]()
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
![]() |
![]() |
# 4 | ||
Junior Member
Регистрация: 12.03.2006
Сообщения: 72
![]() |
Псих
Цитата:
Цитата:
![]() Naked Вот это все я теоретически представяю.....вот у меня лично был вопрос....нужно ли делать массив и как распределять соответственно значения голосов. Кстати да, нужно поискать готовый скрипт. |
||
![]() |
![]() |
# 5 | |
::VIP::
Guinness Liker Понаехало тут Регистрация: 26.01.2003
Адрес: В нейроне
Пол: Male
Сообщения: 2 848
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
меня не вылечат
![]() |
|
![]() |
![]() |
# 6 |
Junior Member
Регистрация: 30.03.2003
Адрес: СПб
Сообщения: 162
![]() ![]() ![]() |
Добавлю лишь по поводу того, как можно распределять. Нужно просто для каждого варианта вычислить относительное значение результата(количество ответов на данный вопрос разделить на общее число ответов). После этого зная максимальную длину полосочки можно (например) домножить относительное значение результата на эту длину, округлить и поставить в качестве width gif'у.
Аналогично можно генерить картинку в GD - только вместо длины gif'а рисовать прямоугольнички/сектора круга...
__________________
640Kbytes should be enough for everything! (c) Bill Gates, 1981. Все "спасибо" в репутацию ![]() |
![]() |
![]() |
# 7 |
::VIP::
Черный маг Регистрация: 03.06.2006
Адрес: Старая башня
Пол: Male
Сообщения: 890
![]() ![]() ![]() |
Добрый день. Вопрос стал следующим образом. Есть голосования на PHP, их грубо говоря штук 500 на 1 сайте [возможно будет и больше]. Изпользуем БД. Нужно сделать чтобы человек с 1 IP мог проголосовать только 1 раз за день в 1 голосовании, т.е. он голосует в 1м и переходит на второе голосование и так пока они не закончатся, НО человек не должен иметь право проголосовать в 1 голосовании 2 раза.
Идея была следующая: таблица в БД - sessions где все разпределаятся на: IP | Date | id_poll Там где ИП - ип юзера, дата - момент голосования, id_poll - ID голосования. Таблица будет обнуляться каждые 24 часа в 00:00. И потом идет проверка для соответствующего голосования, голосовал ли человек с его IP. Но этот путь не очень правилен, ибо если в день проголосуют 1000 человек, хотя бы в 20 голосованиях, получится - 20000 записей в базу. Может у кого-нибудь есть уже готовое решение задачи. ![]() ![]()
__________________
Маг Уха Песчаного Штиля. Последний раз редактировалось Necromancer; 20.03.2010 в 15:06. |
![]() |
![]() |
# 8 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ну так и что? Если много голосуют, много записей и будет. Результаты голосования-то Вы же все равно считаете? Или храните только агрегированные данные?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |
![]() |
# 10 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ну а какие видны проблемы?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |
![]() |
# 11 |
::VIP::
Черный маг Регистрация: 03.06.2006
Адрес: Старая башня
Пол: Male
Сообщения: 890
![]() ![]() ![]() |
Просто вопрос был чтобы база не нагружалась при большом количестве голосов, но также есть вариант например сделать:
IP | Date | ID_of_poll и будут как-то так 192.168.0.1 | 20.03.2010 14:52 | 1,2,4,20,65,34 и через explode сделать проверку из ID_of_poll, чтобы небыло огромного кол-ва записей в базе.
__________________
Маг Уха Песчаного Штиля. |
![]() |
![]() |
# 12 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Так все равно будет дописываться при каждом голосовании. И потом при проверке будет еще больше нагрузка!
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |
![]() |
# 13 |
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Вопрос следующий - а голосования идут по порядку? Просто по описанию мне так показалось - тогда:
IP | Date | Number_of_poll где number_of_poll - номер следующего голосования, т.е. человек 1 проголосовал - в number_of_poll стоит 2 - т.е. он может начать только со второго голосования.... А вообще вариант с 20 000 записей нормальный - только грамотно индекс нужно сделать, тогда все будет быстро, по опыту мускул 1 500 000 записей обрабатывает вполне адекватно - и таблица более нагружена была ![]()
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
![]() |