[PHP] Скрипт опросов на PHP и MySQLi

impuLse #IT

Администратор
Команда форума
Регистрация
12.03.2015
Сообщения
0
Репутация
447
Баллы
23
Уровень
0
Адрес
mySQL
Лучшие ответы
0
Плюсом данного кода является то, что все необходимые данные хранятся в БД MySQLi в трех таблицах независимо от количества созданных опросов. В рассмотренном же ранее скрипте голосования, который не использует БД, для каждого опроса создавалось по два файла. Так же представленный в данной теме скрипт сделан более наглядным и позволяет оставить голос и посмотреть результаты без перезагрузки страницы.

Скрипт учитывает только один голос с одного IP адреса для каждого голосования в отдельности. Таким образом, если с указанного IP адреса голосуют первый раз, то под результатами голосования Вы увидите надпись "Ваш голос учтен!" и Ваш голос будет засчитан. При попытке повторного голосования с IP адреса, который уже принимал участие в опросе, под результатами голосования появится надпись "Вы уже голосовали!" и голос не будет засчитан.

Теперь давайте перейдем непосредственно к созданию подобного скрипта голосования на Вашем сайте. Для начала Вам понадобится создать три таблицы в MySQLi для хранения всех необходимых данных по опросам, как на скриншотах ниже:


Таблица: polls.

Таблица: poll_ip.

Таблица: poll_answer.
Для создания указанных таблиц, Вы можете воспользоваться следующим кодом:
PHP:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
Далее Вам понадобится создать файл, например, polls.php, который будет отвечать за отображение Ваших опросов.

В данный файл (polls.php), либо на уже имеющеюся у Вас страничку поместите следующий код:
PHP:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
Обращаем Ваше внимание на то, что если у Вас на сайте не подключена библиотека jQuery, или Вы делаете отдельную страничку для опросов, то в файле polls.php Вам необходимо подключить ее следующим образом:
Код:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
Для того чтобы не создавать для каждого опроса свою страничку, как Вы могли заметить, мы добавили переменную $_GET["poll_id"]. Таким образом, при обращении к файлу polls.php следующим образом: polls.php?poll_id=3, будет отображен опрос с id=3.

Как говорилось ранее, скрипт голосования работает без перезагрузки странички, следовательно, нам понадобится создать еще один файл, например, polls_result.php. Данный файл будет вносить изменения в БД и выводить результаты голосования по нужному опросу.

Обращаем Ваше внимание на то, что наименование файла polls_result.php используется в предыдущем файле (polls.php), так что если Вы захотите переименовать файл polls_result.php в что-то другое, то следует внести изменения и в файл polls.php.

В файл polls_result.php, поместите следующий код:
PHP:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
После того, как Вы создали БД, файл опросов (polls.php) и файл, вносящий изменения в БД (polls_result.php), можно считать, что все готово, но осталось лишь самое простое - сделать админку по добавлению, изменению и удалению опросов. Для этого лучше создать отдельный файл, закрытый от других пользователей паролем (например, admin_polls.php), в который добавьте следующий код:
PHP:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания кодов!
Пусть размер приведенного кода в данной теме Вас не пугает, т.к. это все-таки код для трех разных файлов, выполняющих разные функции. Если же Вы все сделали так, как написано в данной теме, то у Вас должна получиться страничка для проведения опросов на PHP и MySQLi, как в примере, продемонстрированном на данной страничке.