Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2009, 23:48   #1
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию Голосование с использованием MySQL

Пишу голосование
Код:
<html>
<head>
<title>Голосование</title>
</head>
<body>
<b>как вам мой сайт</b>
<form method="post" action="poll.php">
<Input Type="radio" Name="g" Value="a">Хорошо<br>
<Input Type="radio" Name="g" Value="b">Плохо<br>
<Input Type="radio" Name="g" Value="c">Под вопросом<br>
<Input Type="submit" Value="голосуй">
</form>
<a href="poll_results.php">результат</a>
</body>
</html>
далее я создал базу с таблицей t
Код:
CREATE TABLE `t` (
`a` INT,
`b` INT,
`c` INT
);
Как теперь мне написать скрипт отправки данных в переменную базы?
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 31.01.2009, 23:54   #2
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Код:
<?php

// mysql_connect -- Открывает соединение с сервером MySQL
// mysql_select_db -- Выбирает базу данных MySQL
// mysql_query -- Посылает запрос MySQL

$host = "";
$db = "golos";
$username = "";
$password = "";
$news_max = 3; 

$link = mysql_connect( $host, $username, $password ) or die( "Не могу создать соединение<br>" );
mysql_select_db( "$db" ) or die( "Невозможно выбрать таблицу <br>" );
А дальше вроде так...
        $query = "INSERT INTO Book VALUES ( 'тут у меня тоже вопрос вопрос?')
?>
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 01.02.2009, 09:28   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Отправляю вам готовый сайт с голосованием (писал одногрупнику для сдачи зачета). Сам скрипт простой с коментариями, если что не понятно, спрашивайте...
Прежде чем запускать index.php, сначала нужно однократно запустить create_baze.php (создание базы и таблицы).
Вложения
Тип файла: rar _anton.rar (23.5 Кб, 75 просмотров)
Gorychev вне форума Ответить с цитированием
Старый 08.02.2009, 21:17   #4
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

чего-то не работает. А пошагово объяснить можно? И можно ли по проще написать. И нет ли у вас ссылки на статьи где описывается подобное, а то поисковик облазил(без результата).
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 08.02.2009, 21:45   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

veter_s_morya, используйте не INSERT, а UPDATE. В таблице будет только 1 запись, сначала туда загоняем 0, а потом увеличиваем нужное поле в зависимости от выбора пользователя.
Arigato вне форума Ответить с цитированием
Старый 14.02.2009, 00:53   #6
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Я тут еще упростил. Правда теперь глючит!
Код:
<form method="post" action="Page4/poll.php">
  <div align="left">
    <p>Выбери    </p>
    <p>
      <Input Type=radio Name=vote Value=1>
    Вариант1<br>
    <Input Type=radio Name=vote Value=2>
    Вариант2<br>
    <Input Type=radio Name=vote Value=3>
    Вариант3<br>
	<Input Type=submit Value=ran>

      </p>
  </div>
</form>
</div>
и вот обработчик формы
Код:
<?
$host = "";
$db = "poll";
$username = "root";
$password = "";
$news_max = 3; 
$link = @mysql_connect( $host, $username, $password ) or die( "werwerwer<br>" );
@mysql_select_db( "$db" ) or die( "weewr <br>" );
if ($vote==1)
{$res_a = mysql_query ("SELECT a FROM t") or die ("Неправильный запрос к MySQL<br>");
$res_a=$res_a+1;
mysql_query ("update  t set a=$res_a "); }
elseif ($vote==2)
{$res_b = mysql_query ("SELECT b FROM t") or die ("Неправильный запрос к MySQL<br>");
$res_a=$res_b+1;
mysql_query ("update  t set b=$res_b "); }
elseif ($vote==3)
{$res_c = mysql_query ("SELECT c FROM t") or die ("Неправильный запрос к MySQL<br>");
$res_a=$res_c+1;
mysql_query ("update  t set c=$res_c "); }
mysql_close();
?>
Помогите! Что тут не так? Почему голос не увеличивается на 1?
------------------------------
Ум без разума –это беда!

Последний раз редактировалось veter_s_morya; 14.02.2009 в 00:55.
veter_s_morya вне форума Ответить с цитированием
Старый 14.02.2009, 01:05   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Примерно так можно сделать:
Код:
if ( isset ($_POST["vote"]) )
switch ( $_POST["vote"] )
{
  case 1: mysql_query ("update  t set a=a+1"); break;
  case 2: mysql_query ("update  t set b=b+1"); break;
  case 3: mysql_query ("update  t set c=c+1"); break;
  default: die ("Ошибка формы");
}
Arigato вне форума Ответить с цитированием
Старый 14.02.2009, 21:18   #8
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Arigato, пока обойдусь без кейсов.
Получилось!
вот форма с выводом
Код:
<form method="post" action="Page4/poll.php">
  <div align="left">
    <p>Ëó÷øèé ôèëîñîô     </p>
    <p>
      <Input Type=radio Name=vote Value=1>
    Ïëàòîí<br>
    <Input Type=radio Name=vote Value=2>
    Ñàêðàò<br>
    <Input Type=radio Name=vote Value=3>
    Ìàðêñ<br>
	<Input Type=submit Value=ran>

      </p>
  </div>
</form>
</div>
<?php
$host = "";
$db = "poll";
$username = "root";
$password = "";
$news_max = 3; 
$link = @mysql_connect( $host, $username, $password ) or die( "error<br>" );
@mysql_select_db( "$db" ) or die( "error <br>" );
$result=mysql_query ("select a from t ");
$a = mysql_result($result, 'a');
$result=mysql_query ("select b from t ");
$b = mysql_result($result, 'b');
$result=mysql_query ("select c from t ");
$c = mysql_result($result, 'c');
echo "$a, $b, $c";
?>
вот обработчик
Код:
<?
$host = "";
$db = "poll";
$username = "root";
$password = "";
$news_max = 3; 
$link = @mysql_connect( $host, $username, $password ) or die( "werwerwer<br>" );
@mysql_select_db( "$db" ) or die( "weewr <br>" );
if ($vote==1)
{
mysql_query ("update  t set a=a+1 "); }
elseif ($vote==2)
{
mysql_query ("update  t set b=b+1 "); }
elseif ($vote==3)
{
mysql_query ("update  t set c=c+1 "); }
mysql_close();
?>
<meta http-equiv="refresh" content="0;URL=http://localhost/buga/main.php? NumPage=2">
Просто и красиво, всем спасибо!
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 14.02.2009, 22:43   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Код:
<meta http-equiv="refresh" content="0;URL=http://localhost/buga/main.php? NumPage=2">
Лучше так сделать:
Код:
header ("location: http://localhost/buga/main.php?NumPage=2");
Код:
if ($vote==1)
А вместо этого так:
Код:
if ( $_POST["vote"] == 1 )
Arigato вне форума Ответить с цитированием
Старый 14.02.2009, 23:11   #10
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Цитата:
header
А как он работает? Так же как и <meta http-equiv="refresh" content ?
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раздача семизнаков-- а оно нам надо?(голосование) NikLik Свободное общение 17 14.10.2008 02:16
Защита от накрутки голосование vitalik007 PHP 14 25.12.2007 10:05
Голосование - финал 2 конкурса zetrix Свободное общение 17 18.12.2007 07:56
Вспомогательное голосование! zetrix Свободное общение 4 26.11.2007 08:51
Голосование Второй тур! zetrix Свободное общение 7 24.11.2007 08:40