webid13
13.07.2009 - 15:16
Всем доброго времени!
Есть опрос, вопросы в нём берутся из БД, после выбора ответа, данные заносятся в другую базу, и пользователь видит следующий вопрос, и т.д. пока вопросы не закончатся.
Не могу понять, как сделать так, чтобы пользователь выбрав ответ и нажав кнопку "Далее" сразу бы видел следующий вопрос.
Вот код формы:
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 написал(а):
Я думаю что начальству придется сказать что возникли маленькие трудности и скорее сесть и подучить что такое сессия и с чем ее едят, да а потом сопоставить то что ты прочитал со своим скриптоп.