imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 14.05.2006, 23:32     # 1
Стефания
Junior Member
 
Регистрация: 12.03.2006
Сообщения: 72

Стефания Путь к славе только начался
Как создать голосование

Как создать голосование на рнр с выводом на экран результатов в виде диограмки ну или полосочек просто? Не могу понять с чего начать
Стефания вне форума  
Старый 15.05.2006, 01:30     # 2
Псих
::VIP::
Guinness Liker
Понаехало тут
 
Аватар для Псих
 
Регистрация: 26.01.2003
Адрес: В нейроне
Пол: Male
Сообщения: 2 848

Псих СуперБогПсих СуперБог
Псих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБог
Стефания
С бд или без?

А начать надо, полюбому, с формы выбора пунктов голосования и кнопки проголосовать!
__________________
меня не вылечат
Псих вне форума  
Старый 15.05.2006, 17:58     # 3
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
Стефания:
Не могу понять с чего начать
а я бы все-таки сначала скачал стандартный скрипт на твоем месте и посмотрел там все как делается, благо таких ну просто огромная куча
А если влом разбираться, то вкратце:
Сначала пользователю должна выдаться формочка с возможностью выбора какого-то варианта ответа (делается <input type=radio> или <input type=checkbox>, если вариантв может быть несколько), затем кнюпель <input type=submit>, потом опять эта (или уже другая страничка) получает данные, записывает их куда-либо (либо в базу, либо в файл, смотря что тебе нужно), потом в ней же читается файл или база, выбираются в массив все варианты с количеством ответов, а затем строится график (если нужно не слишком наворочено, то я например, делаю простую табличку в которой ячейки <td> имеют определенную длину, закрашиваю их в разные цвета, для красоты можно еще и ширину ячейки поменьше сделать - смотрится лучше), и соответственно либо перед полоской, либо после нее пишем, что за пункт вроде бы все...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 15.05.2006, 21:23     # 4
Стефания
Junior Member
 
Регистрация: 12.03.2006
Сообщения: 72

Стефания Путь к славе только начался
Псих
Цитата:
Псих:
С бд или без?
Без БД.
Цитата:
Псих:
А начать надо, полюбому, с формы выбора пунктов голосования и кнопки проголосовать!
Хи.....формочку-то я уже сделала....осталось сделать, чтоб она работала
Naked
Вот это все я теоретически представяю.....вот у меня лично был вопрос....нужно ли делать массив и как распределять соответственно значения голосов.
Кстати да, нужно поискать готовый скрипт.
Стефания вне форума  
Старый 15.05.2006, 21:35     # 5
Псих
::VIP::
Guinness Liker
Понаехало тут
 
Аватар для Псих
 
Регистрация: 26.01.2003
Адрес: В нейроне
Пол: Male
Сообщения: 2 848

Псих СуперБогПсих СуперБог
Псих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБог
Цитата:
Стефания:
нужно ли делать массив и как распределять соответственно значения голосов.
Идеальный вариант считывать в массив кол-во говолосов, а потом просто циклом отрисовывать колонки (я это делал заполняя нужное кол-во ячеек в таблице цветом), хотя правильнее конечно же используя gd бибилотеку
__________________
меня не вылечат
Псих вне форума  
Старый 16.05.2006, 21:48     # 6
Al-x
Junior Member
 
Регистрация: 30.03.2003
Адрес: СПб
Сообщения: 162

Al-x МолодецAl-x МолодецAl-x Молодец
Добавлю лишь по поводу того, как можно распределять. Нужно просто для каждого варианта вычислить относительное значение результата(количество ответов на данный вопрос разделить на общее число ответов). После этого зная максимальную длину полосочки можно (например) домножить относительное значение результата на эту длину, округлить и поставить в качестве width gif'у.
Аналогично можно генерить картинку в GD - только вместо длины gif'а рисовать прямоугольнички/сектора круга...
__________________
640Kbytes should be enough for everything! (c) Bill Gates, 1981.
Все "спасибо" в репутацию
Al-x вне форума  
Старый 20.03.2010, 14:23     # 7
Necromancer
::VIP::
Черный маг
 
Аватар для Necromancer
 
Регистрация: 03.06.2006
Адрес: Старая башня
Пол: Male
Сообщения: 890

Necromancer Гурее всех гурых :-)
Necromancer Гурее всех гурых :-)Necromancer Гурее всех гурых :-)
Добрый день. Вопрос стал следующим образом. Есть голосования на 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.
Necromancer вне форума  
Старый 20.03.2010, 15:44     # 8
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Сообщение от Necromancer Посмотреть сообщение
Но этот путь не очень правилен, ибо если в день проголосуют 1000 человек, хотя бы в 20 голосованиях, получится - 20000 записей в базу.
Ну так и что? Если много голосуют, много записей и будет. Результаты голосования-то Вы же все равно считаете? Или храните только агрегированные данные?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 20.03.2010, 15:45     # 9
Necromancer
::VIP::
Черный маг
 
Аватар для Necromancer
 
Регистрация: 03.06.2006
Адрес: Старая башня
Пол: Male
Сообщения: 890

Necromancer Гурее всех гурых :-)
Necromancer Гурее всех гурых :-)Necromancer Гурее всех гурых :-)
Цитата:
Сообщение от Hubbitus Посмотреть сообщение
Ну так и что? Если много голосуют, много записей и будет. Результаты голосования-то Вы же все равно считаете? Или храните только агрегированные данные?
То есть этот метод вполне имеет право жить?
__________________
Маг Уха Песчаного Штиля.
Necromancer вне форума  
Старый 20.03.2010, 15:52     # 10
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Ну а какие видны проблемы?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 20.03.2010, 17:44     # 11
Necromancer
::VIP::
Черный маг
 
Аватар для Necromancer
 
Регистрация: 03.06.2006
Адрес: Старая башня
Пол: Male
Сообщения: 890

Necromancer Гурее всех гурых :-)
Necromancer Гурее всех гурых :-)Necromancer Гурее всех гурых :-)
Просто вопрос был чтобы база не нагружалась при большом количестве голосов, но также есть вариант например сделать:

IP | Date | ID_of_poll
и будут как-то так
192.168.0.1 | 20.03.2010 14:52 | 1,2,4,20,65,34

и через explode сделать проверку из ID_of_poll, чтобы небыло огромного кол-ва записей в базе.
__________________
Маг Уха Песчаного Штиля.
Necromancer вне форума  
Старый 20.03.2010, 17:49     # 12
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Так все равно будет дописываться при каждом голосовании. И потом при проверке будет еще больше нагрузка!
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 21.03.2010, 12:58     # 13
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Вопрос следующий - а голосования идут по порядку? Просто по описанию мне так показалось - тогда:
IP | Date | Number_of_poll

где number_of_poll - номер следующего голосования, т.е. человек 1 проголосовал - в number_of_poll стоит 2 - т.е. он может начать только со второго голосования....

А вообще вариант с 20 000 записей нормальный - только грамотно индекс нужно сделать, тогда все будет быстро, по опыту мускул 1 500 000 записей обрабатывает вполне адекватно - и таблица более нагружена была
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 20:14.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.