[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача значений радиобаттонов в БД mysql работае
Страницы: 1, 2
Bruda
Здравствуйте!

Мучаюсь с формой уже долго, совершенно нет идей почему всё работает именно так.

Вкратце. Есть база данных с вопросами. В каждом вопросе 4 варианта ответов (4 радиобаттона, name= rad, value = one, two, three, four). И есть в базе дополнительно 4 счетчика для каждого вопроса (vote1,2,3,4), в которые я записываю все ответы, которые выбираются радиобаттонами (если выбран радиобаттон со значением one, то в базе для этого вопроса плюсуется vote1, и т.д.). Это что-то типа формы опроса, или голосования.
Вопросы из базы вылетают случайным образом на страницу.

Пример:
Когда вылетает вопрос номер 1, и я выбираю радиобаттон 1, у меня плюсуется в базу vote1. Если мне после этого вылетает другой вопрос (с другим id) то тоже все работает. Проблема возникает тогда, когда мне два раза подряд выпадает один и тот же вопрос и я выбираю один и тот же ответ. Если мне выпал вопрос 1 и я выбрал вариант ответа 1, то все работает. НО!!! Если мне следующим же вопросом выпал ЭТОТ ЖЕ вопрос (с тем же id), и я СНОВА ВЫБЕРУ ВАРИАНТ ОТВЕТА 1, у меня это значение в базу не плюсуется а просто игнорируется. Потом если мне ТРЕТИЙ раз выпадет этот же вопрос, и я СНОВА ВЫБЕРУ ПЕРВЫЙ ВАРИАНТ ОТВЕТА, всё снова работает. Если четвертый - то не работает. И т.д. То есть, при повторном вопросе и том же ответе у меня значение один раз не записывается...

Все сделано через метод POST, на одной странице. Форма обычная.
База прикрепляется с другой страницы, но это не столь важно. Просьба подсказать, как решить проблему, голову сломал.

Спасибо.


КОД:


<?
session_start();
$title = "Случайный вопрос Миру";
require "head.php";
?>

<!DOCTYPE html>
<
html>

<
body>
<? echo "Вы вошли как " ?> <b style="color:blue"> <? echo $_SESSION ['login']; ?> </b>
<
a href="logout.php">(выйти)</a>
<
h3>Случайный вопрос Миру</h3>
<
a href="\main_page.php">на главную</a>
<
hr>

<?php

include_once ("db_connection.php");


$result = mysql_query(" SELECT * FROM all_questions ORDER BY RAND () LIMIT 1 ; ");
$all_questions = mysql_fetch_array($result);
$id_new = $all_questions["id"];

$vote1 = $all_questions["vote1"];
$vote2 = $all_questions["vote2"];
$vote3 = $all_questions["vote3"];
$vote4 = $all_questions["vote4"];
//echo "id new = ".$id_new;

?>
<h4>
<?
echo "Вопрос №".$all_questions["id"].": ";
echo $all_questions["title"];
//echo "id вопроса - ".$id_new;
?>
</h4>
<?
echo $all_questions["text"]; echo "<br><br>";
?>
<form method="post" action="see_random_question.php">

<
input type="radio" name="rad" value="one" />
<?
echo $all_questions["solution1"]; echo "<br>"; ?>
<input type="radio" name="rad" value="two" />
<?
echo $all_questions["solution2"]; echo "<br>"; ?>
<input type="radio" name="rad" value="three" />
<?
echo $all_questions["solution3"]; echo "<br>"; ?>
<input type="radio" name="rad" value="four" />
<?
echo $all_questions["solution4"]; echo "<br><br>";

echo "Дата публикации: ";
echo $all_questions["date"]." в ".$all_questions["time"]; echo "<br>";
echo "Автор: ";
echo $all_questions["author"]; echo "<br><br>"; ?>


<b>Всего <img src="vote1.png" width="20">: <? echo $all_questions["vote1"] + $all_questions["vote2"] + $all_questions["vote3"] + $all_questions["vote4"] ?> человек <br> </b>
1 вариант <progress max = <? echo $all_questions["vote1"] + $all_questions["vote2"] + $all_questions["vote3"] + $all_questions["vote4"] ?> value = <? echo $all_questions["vote1"] ?> >
</
progress>

<?echo $all_questions["vote1"]?> <img src="vote1.png" width="20"> <br>

2 вариант <progress max = <? echo $all_questions["vote1"] + $all_questions["vote2"] + $all_questions["vote3"] + $all_questions["vote4"] ?> value = <? echo $all_questions["vote2"] ?> >
</
progress>

<?echo $all_questions["vote2"]?> <img src="vote1.png" width="20"> <br>

3 вариант <progress max = <? echo $all_questions["vote1"] + $all_questions["vote2"] + $all_questions["vote3"] + $all_questions["vote4"] ?> value = <? echo $all_questions["vote3"] ?> >
</
progress>

<?echo $all_questions["vote3"]?> <img src="vote1.png" width="20"> <br>

4 вариант <progress max = <? echo $all_questions["vote1"] + $all_questions["vote2"] + $all_questions["vote3"] + $all_questions["vote4"] ?> value = <? echo $all_questions["vote4"] ?> >
</
progress>

<?echo $all_questions["vote4"]?> <img src="vote1.png" width="20"> <br><br>

<
input type="hidden" name="id_old" value=" <? echo $id_new ?>" />
<
input type="hidden" name="vote1" value=" <? echo $vote1 ?>" />
<
input type="hidden" name="vote2" value=" <? echo $vote2 ?>" />
<
input type="hidden" name="vote3" value=" <? echo $vote3 ?>" />
<
input type="hidden" name="vote4" value=" <? echo $vote4 ?>" /><br>

<
input type="submit" name="send" value="Ответить" /><br><br>
</
form>

<?

if (isset($_POST['send']))
{
$id_old = $_POST['id_old'];
$vote11 = $_POST['vote1'];
$vote22 = $_POST['vote2'];
$vote33 = $_POST['vote3'];
$vote44 = $_POST['vote4'];

if (isset($_POST['rad']))
{
switch ($_POST['rad'])
{
case 'one':
//echo "Вы проголосовали за 1 <br>";
$vote11 += 1;
mysql_query(" UPDATE all_questions SET vote1 = '$vote11' WHERE id='$id_old' ");
break;

case 'two':
//echo "Вы проголосовали за 2 <br>";
$vote22 += 1;
mysql_query(" UPDATE all_questions SET vote2 = '$vote22' WHERE id='$id_old' ");
break;

case 'three':
//echo "Вы проголосовали за 3 <br>";
$vote33 += 1;
mysql_query(" UPDATE all_questions SET vote3 = '$vote33' WHERE id='$id_old' ");
break;

case 'four':
//echo "Вы проголосовали за 4 <br>";
$vote44 += 1;
mysql_query(" UPDATE all_questions SET vote4 = '$vote44' WHERE id='$id_old' ");
break;
}
mysql_close();

}
//echo "id old = ".$id_old;
}

?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.