Мучаюсь с формой уже долго, совершенно нет идей почему всё работает именно так.
Вкратце. Есть база данных с вопросами. В каждом вопросе 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;
}
?>