[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Код опроса
webid13
Всем доброго времени!
Есть опрос, вопросы в нём берутся из БД, после выбора ответа, данные заносятся в другую базу, и пользователь видит следующий вопрос, и т.д. пока вопросы не закончатся.
Не могу понять, как сделать так, чтобы пользователь выбрав ответ и нажав кнопку "Далее" сразу бы видел следующий вопрос.
Вот код формы:
PHP
/* Переменные для соединения с базой данных */
$hostname 'localhost';
$username 'user';
$password '';
$db 'project';

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение");
/* выбрать бд. Если произойдет ошибка - вывести ее */
mysql_select_db($db) or die(mysql_error());
session_start();
if(empty(
$_GET['id'])) 
{
$id 1;
}
else 
{
$id $_GET['id'];}

$query "SELECT * FROM questions WHERE id = $id";
$res mysql_query($query) or die(mysql_error());
/*Цикл для формы*/

# Проверяем - выбран ли какой-нибудь вариант ответа. Если нет не обрабатываем.
if (!isset($pit)) header("Location: ".$HTTP_REFERER);
    while (
$row=mysql_fetch_array($res))
   {
    echo 
'<FORM ACTION="to_db.php" METHOD="post">';
    echo 
'<input type="hidden" value="'.$_SESSION['db'].'">';
    echo 
'<input type="hidden" name="id" value="'.$_POST['id'].'">';
    echo 
'<input type="hidden" name="gr" value="'.$_POST['gr'].'">';
    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="Далее">';
   } 
exit;
echo 
'</FORM>';
   echo 
"</CENTER>";


Код занесения данных в БД:
PHP
/* Переменные для соединения с базой данных */
$hostname 'localhost';
$username 'user';
$password '';
$db 'project';

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_query('SET @@collation_connection = @@collation_database');
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
    
mysql_select_db($db) or die(mysql_error()); 

    
$a=$_POST['gr'];
    
$id=$_POST['id'];
/* запрос для вставки информации в таблицу */
    
$query "INSERT usersanswers SET answer='$a', question = '$id'";
/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
    
    
session_start();
        
$_SESSION['db'] = $db;
        
header('index.php?id=($id+1)');
    exit;
echo 
'figa';
/* Закрыть соединение */
mysql_close();


Помогите, кто чем может. Заранее благодарю.



Спустя 44 минуты, 23 секунды (13.07.2009 - 15:01) stepan написал(а):
Ну вопервых почитай по поводу sql инъекций, а во вторых не проще будет сделать все без get переменных т.е. id сделать сессией

Спустя 28 минут, 47 секунд (13.07.2009 - 15:29) webid13 написал(а):
stepan
Уважаемый, если бы Вы подсказали как правильно прописать сессию для такого запроса, было бы великолепно...просто не силён в PHP, а начальство желает видеть опрос как можно быстрее.

Спустя 19 минут, 9 секунд (13.07.2009 - 15:49) stepan написал(а):
Я думаю что начальству придется сказать что возникли маленькие трудности и скорее сесть и подучить что такое сессия и с чем ее едят, да а потом сопоставить то что ты прочитал со своим скриптоп.
Быстрый ответ:

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