Голосования за позиции из каталога

Web/сайты Прочее

Был(а) онлайн: 26.04.20 14:45
Umen 26 лет

1.0 Был(а) онлайн: 26.04.20 14:45

Недавно
Требуется сотворить систему голосования для позиций каталога основанную на Cookies с применением Java языка (дабы не перезагружать страницу при голосовании). И самое основное дабы это голосование как дозволено поменьше напрягало сервер и БД на нем, и скрипт был оптимизирован для стремительной и верной работы.

Образный пример (это голосование находиться на всех страницах каталога):
http://mixzona.ru/wallpapers/picture/1655.html - здесь показан пример именно того, что скрипт не нуждается в перезагрузки страницы при голосовании и голосование прикручено ко каждому позициям каталога.

Вступление:
В каталоге, скажем 10 000 позиций, нам надобно сотворить страницу рейтинга, где выводить 50 самых знаменитых позиций. Следственно нам необходима информация от пользователей, за какие позиции они голосовали и какую суммарную оценку набрали эти позиции. Голосование проходит по пятибалльной шкале, и в случаи фурора в БД попадает итог такого вида: ID, его прежний итог + текущая оценка. Пример в БД был id 163 и у него был итог голосования теснее в 63 балла, пользователь предпочел именно позицию с id 163 и голосует за нее, следственно к его 63 баллам прибавляем еще от 1 до 5 баллов и его итог получается от 64 до 68 зависимости от оценки поставленной пользователем.

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

Техническая часть:
На странице с голосованием будет java скрипт тот, что надобен для передачи id* и балла в иной php скрипт без перезагрузки страницы, а также для итога итога голосования, т.е. результата пользователю:
- Ваш голос принят системой на рассмотрение
либо если допустимо без мощной нагрузки на сервер и крепкого “извращения” то:
- Нет технической вероятности проголосовать
- Вы теснее голосовали за эту позицию
- Ваш голос принят

(*) id на этой странице будет находиться внутри скрипта и передаваться ему через get url: http://site.ru/katalog/poz1234.html
(на такой станице будет висеть голосование, а 1234 – это и есть id)

Скрипт в тот, что попадает итог голосования должен:
1. Проверить включены ли вообще Cookies у голосующего и тружусь ли правильно, если они отключены либо не работают, то закончить работу скрипта и по ВЕРОЯТНОСТИ отдать итог обратно (т.е. сказать пользователю, что нет технической вероятности принять голосование у него)
2. Проверить есть ли у пользователя теснее данный ID в куках (голосовал ли он теснее за эту позицию), если голосовал, то закончить работу скрипта и по ВЕРОЯТНОСТИ отдать итог обратно (т.е. сказать пользователю, что он голосовал теснее за эту позицию)
3. Если первые два пункта прошли на True, то записать итог в БД (к указанному id в итог прибавить оценку пользователя от 1 до 5) и по ВЕРОЯТНОСТИ отдать итог обратно (т.е. сказать пользователю, что голос его принят)

БД:
Сама база данный будет подключаться из отдельного файла bd.inc.php, следственно файл будет инклюдиться скриптом (файл будет лежать в корне), вот содержимое файла (для вашего представления):
<?php
$alCf_host = 'localhost';
$alCf_user = 'root';
$alCf_db = 'bdname';
$alCf_pas = '12345';

$s_home='0';
@mysql_connect($alCf_host, $alCf_user, $alCf_pas) or $s_home=1;
@mysql_select_db($alCf_db) or $s_home=1;
if ($s_home=='1') {die('БД не доступна!');}
unset($s_home);
?>

Будет отдельная таблица для голосования, в которую будет поступать и храниться итоги:

CREATE TABLE `golos` (
`id` int(11) NOT NULL default '0',
`reting` int(11) NOT NULL default '0',
KEY `id` (`id`)
) ENGINE=MyISAM;

Первоначально она будет пустая, дальше по мере поступления итогов голосования она будет заполняться.
Поступать будет id позиции и балл (от 1 до 5), скрипт должен проверить есть ли запись с таким id, и если ее нет, то добавить, если она есть, то прибавить к теснее имеющемуся итогу (reting) балл (т.е. оценку, которую поставил пользователь за определенную позицию с id таким-то).

На самой странице, где будет висеть голосование (откуда пользователь голосует (кликает по звездочкам), из определенной позиции каталога) Java скрипт должен быть вынесен в обособленный файл, а то, что не вынесено должно отвечать эталонам w3.org (valid xhtml и css), к тому же html код должен быть минимальным на этой странице все лишнее в css-файл и java-файл перенести. И соответственно легко интегрируемый в сайт.

Завершение:
Еще раз повторюсь скрипт должен быть максимально оптимизирован на стремительную и безошибочную работу и делать минимальную нагрузку на сервер и БД, а html код голосования должен быть валидным (w3.org) и минимальным.

На самом деле написано здесь много, так как я хочу получить именно то, что хочу, следственно потратил время на составление подробного изложения. В реале скрипт не будет таким массивным. Все что необходимо от вас это хорошее познания Java (AJAX), PHP, MySQL, HTML и знание оптимизировать все на стремительную работу скрипта, минимальные, валидные коды и минимальную нагрузку на сервер.

Мне надобно, дабы вы указали цену, за которую вы сделаете скрипт, и время.

Чтобы добавить заявку к этому заказу, нужно войти или зарегистрироваться

Мой блок

26.04.20 14:45
Umen 26