Система опроса

webid13

Новичок
Система опроса

Всем доброго времени суток!
Сразу говорю, в PHP и MySQL не силён...но нужно сделать следующее:
Есть форма в которой пользователь отвечает на сколько ему важно то или иное, к вопросу дано изображение. Вопроси икартинка берутся из БД. После выбора ответа пользователь нажимает кнопку "далее" и отвечает на следующий вопрос, и так далее пока есть вопросы. Во время нажатия на кнопку ответ отправляется в БД, а пользователь сразу видит следующий вопрос. По окончанию опроса, выдаётся сообщение вида :"Спасибо, Ваши ответы учтены".
Вот форма:
PHP:
<?php
$hostname = "localhost";
$username = "user1";
$password = "";
$dbName = "project";
$userstable = "tbl_1";

mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());

$query = "SELECT * FROM $userstable";
$res = mysql_query($query) or die(mysql_error());

if ($res);
  while ($row=mysql_fetch_array($res))
   {
   echo '<FORM ACTION="to_db.php" METHOD="POST">';
   echo '<center>'.$row['question'].'</center><BR>';
   echo '<input type="radio" name="gr" align="center" value="1"> Всё равно<br>';
   echo '<input type="radio" name="gr" align="center" value="2"> Не важно<br>';
   echo '<input type="radio" name="gr" align="center" value="3"> Не очень важно<br>';
   echo '<input type="radio" name="gr" align="center" value="4"> Важно<br>';
   echo '<input type="radio" name="gr" align="center" value="5"> Очень важно<br>';
   echo '<input type="submit" value="Далее">';
   echo '</FORM>';
   while (!$_POST) {};
   }
   echo "</CENTER>";
 
?>
to_db выглядит примерно так:
PHP:
 <?php
$hostname = "localhost";
$username = "user1";
$password = "";
$dbName = "project";
$userstable = "tbl_1";

mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_query('SET @@collation_connection = @@collation_database');
mysql_select_db($dbName) or die(mysql_error()); 

$a=$_POST['gr'];
$id=$_POST['idq'];
$query = "update $userstable SET answer='$a' WHERE id='$id'";
mysql_query($query) or die(mysql_error());

mysql_close();
?>
БД имеет вид ('question','answer','imgP','id');
Не могу понять, как сделать так чтобы, после ответа пользователь получал следующий вопрос, и как добавлять ответ в базу, и хотелось бы чтобы всё было в одном файле...подскажите, кто может...
 

Духовность™

Продвинутый новичок
Продам такой скрипт (без админки, к сожалению) за 3000 рублей. За дополнительную плату отверстаю и настрою всё как надо. В конце голосовалки выводится красивый список с результатами.
 

webid13

Новичок
Спасибо за предложение, но хотелось бы так разобратся...
 

Духовность™

Продвинутый новичок
В чем тогда причина непонимания?
Не могу понять, как сделать так чтобы, после ответа пользователь получал следующий вопрос
когда пользователь зашел в первый раз - создаем сессию с количеством шагов, равных количеству вопросов. все шаги ставим в FALSe

PHP:
if (!isset($_SESSION['page']))
{
	$c = count($questions)+1;
	
	for ($i=1; $i<$c; $i++)
	{
		$_SESSION['page'][$i] = FALSE;
	}
}
смотрим, какой вопрос нужно выести согласно этим флагам - идем по масиву флагов и как только натыкаемся на флаг FALSE, выводим номер этого опроса:

PHP:
// Если не на все вопросы есть ответы, то выводим эти вопросы.
foreach ($_SESSION['page'] as $id_question => $value)
{
	if ($value === FALSE)
	{      // показываем очередной вопрос 
		$_HTML['id_question'] = $id_question; // ид вопроса 
		$_HTML['question'] = $questions[$id_question]; // вопрос 
		$_HTML['answers']  = $answers[$id_question]; // ответы
		// показываем вопрос 
		include('./tpl/questions.html');
		break;
	}
}

// На последний вопрос был получен ответ - флаг в true 
if ($_SESSION['page'][count($_SESSION['page'])])
{
	include('./tpl/end.html');
}
когда ответ на вопрос дан, сохраняем значение, флаг с этим номером ставим в true, идем дальше. когда все флаги в true, показываем результаты

как добавлять ответ в базу
php.net
 

webid13

Новичок
В том то и не понимание, банально, не знаю как оформить такой запрос в виде самого кода...говорил же что не силён ни в PHP ни в MySQL`е, да и вообще кодингом ток две недели как занимаюсь...
 

Фанат

oncle terrible
Команда форума
webid13
если голосование для тебя сложно, то тогда начни с более простого. с хелло ворлд, с гостевой книги. потом постепенно доберешься до голосования.
в школе ведь не интегралы сначала проходят, а таблицу умножения?
 

webid13

Новичок
*****
Ну во-первых, это не голосование, а только сбор информации о мнении людей, в конце не нужно выводить ни каких общих данных, просто сказать спасибо
Во-вторых, этап, с хело и книгой, я уже прошёл, а сейчас просто решил разобраться с более сложным(для меня) вопросом...
Ну а на счёт школы, это ты прав)))
 

Фанат

oncle terrible
Команда форума
ой только не надо ля-ля про гостевую книгу, будто ты ее прошел за 2 недели.

у тебя сейчас все вопросы выводятся на одной странице, а ты хочешь, чтобы выводились по одному?
 
Сверху