Доброго времени суток. Начал писать скрипт тестирования, но до конца не понимаю механизма как его написать! Я только представляю как он должен выглядеть: 1)-- > Сначала выводится название тестов! 2)-- > Затем пользователь выбирает тест для прохождения! 3)-- > Скрипт выводит по очереди вопросы, скажем всего 10 3)-- > По окончанию теста выдается результат (оценка) ТЕСТЫ - ВОПРОСЫ - ОТВЕТЫ хранятся в базе Вот скрипт PHP: <? include "../config.php"; // функция вывода всех тестов function TestList() { // разбивае на страницы $per_page=pages; if (isset($_GET['list'])) $list=($_GET['list']-1); else $list=0; $start=abs($list*$per_page); // запрос на выборку из базы $sql="select * from test ORDER BY id_test LIMIT $start,$per_page"; $result=db($sql); // выводим в таблицу echo "<br><br><center><font class='content'><b>Выбирите тест</b></font></center><br>"; echo "<table width='70%' border='0' cellspacing='1' cellpadding='4' align='center' bgcolor='#336699'><tr>"; echo "<td align='center'>№</td>"; echo "<td align='center'>Тесты</td></tr>"; $bgr='1'; // заганяем запрос в цикл для вывода тестов while($row=mysql_fetch_array($result)) { if($bgr==1) { $bgcolor='#F5F5F5'; $bgr=0; } else { $bgcolor='#FFFFFF'; $bgr=1; } // название теста выглядит как ссылка echo "<tr bgcolor='$bgcolor' onMouseOut=this.style.backgroundColor='$bgcolor' onMouseOver=this.style.backgroundColor='#BED9FB'>"; echo "<td align='center'>".$row['id_test']."<input type='hidden' value='".$row['id_test']."'></td>"; echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?page1-for-3.php&num=1&id_test=".$row['id_test']."&flag=1'>".$row['name_test']."</a>"; echo "<input type='hidden' name='name_test' value='".$row['name_test']."'></td>"; } // конец цикла //закрываем форму и таблицу echo "</form></tr></table><br><center>"; // выводим ссылки для № страниц $sql=("SELECT count(*) FROM test"); $result=db($sql); $row=mysql_fetch_row($result); $total_rows=$row[0]; $num_pages=ceil($total_rows/$per_page); for($i=1;$i<=$num_pages;$i++) { if ($i-1 == $list) { echo $i." "; } else { echo '<a href="'.$_SERVER['PHP_SELF'].'?page1-for-3.php&list='.$i.'">'.$i."</a> "; } } } //Функция для прохождения тестов пользователем function TestingUsers () { // запрос на вывод вопроса согластно названия теста $sql=("select * from vopros,test where vopros.id_test='".$_GET['id_test']."' and vopros.id_test=test.id_test LIMIT 1"); $result=db($sql); $row=mysql_fetch_array($result); // выводим ВОПРОС echo "<b class='red'>".$row['vopr']."</b>"; // Табличка с ответами на вопрос echo "<br><br>"; echo "<table width='50%' border='0' cellspacing='1' cellpadding='4' align='center' bgcolor='#336699'><tr>"; echo "<td align='center'>№</td>"; echo "<td align='center'>Вариант ответа</td>"; echo "<td align='center'>Ответ</td></tr>"; //форма || Почему то когда ставлю метот GET данные в массив не передаются echo "<form action='".$_SERVER['PHP_SELF']."?flag=1&id_test=".$_GET['id_test']."&id_vopros=".$_GET['id_vopros']."' method='POST'>"; echo "<input type='hidden' name='id_vopros' value='".$row['id_vopros']."'>"; echo "<input type='hidden' name='id_test' value='".$_GET['id_test']."'>"; $bgr='1'; // зарос на вывод ответов для вопроса $sql=("select * from vopros,otvet where vopros.id_vopros='".$row['id_vopros']."' and vopros.id_vopros=otvet.id_vopros"); $result=db($sql); // загоняем ответы в цикл while($row=mysql_fetch_array($result)){ if($bgr==1) { $bgcolor='#F5F5F5'; $bgr=0; } else { $bgcolor='#FFFFFF'; $bgr=1; } // выводим ответы echo "<tr bgcolor='$bgcolor' onMouseOut=this.style.backgroundColor='$bgcolor' onMouseOver=this.style.backgroundColor='#BED9FB'>"; echo "<td align='center'>".$row['id_otvet']."</td>"; echo "<td align='center'>".$row['otvet']."</td>"; echo "<td align='center'><input type='checkbox' name='' value='1'></td>"; } // кнопка SUBMIT :) echo "</tr><tr>"; echo "<td align='center' bgcolor='#FFFFD0'><b class='red'>Вопрос №</b></td>"; echo "<td align='center' bgcolor='#FFFFD0'><input type='submit' value='Ответить'></td>"; echo "<td align='center' bgcolor='#FFFFD0'><b class='red'>".$_GET['num']."</b></td>"; echo "</form></tr></table><br><center>"; } // выбираем функцию if ($_GET['flag']>0) { TestingUsers(); } else { TestList(); } ?> Как сделать, чтобы вопросы выводились по очереди после нажатия кнопки? Как написать цикл который будет его обрабатывать?
когда пользователь выбирает ответ, в скрытом поле хранится ID вопроса, который отсылается серверу, далее сервер обрабатывает его и передает след. вопрос.
Простите, действительно хочу многого и сразу smile Буду исправляться. Действительно проблема стоит с выводом вопросов и ответов поочередно! Мне нужно чтобы юзер нажал на кнопку ДАЛЕЕ соответственно поменяется вопрос с ответами! Вот пример кода, только незнаю как его доработать до ума. Может кто подскажет как быть? PHP: <? session_start(); include "../config.php"; // считаем количество строк в базе $sql=("select count(*) from testing"); $result=db($sql); $row=mysql_fetch_row($result); $total=$row['0']; //$i=1; for ($i=1; $i<$total; $i++); if($i>1){ // sql запрос на выборку $sql =( "SELECT * from testing WHERE id='".$i."'"); $result = db($sql); // выводим вопрос с вариантами ответа $row =mysql_fetch_array($result); $table1="<table bgcolor='#f0f0f0' cellspacing='1' cellpadding='2'><tr><td width='400' bgcolor='#ffffff'>"; $table2="</td></tr></table>"; // выводим все красиво в табличке echo "<table>"; echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>"; echo "<tr><td><b>".$row['vopros']."</b></td></tr>"; echo "<tr><td>".$table1."<input type='radio' name='vs' value='1' id='1'><label for='1'>".$row['otvet1']."</label> ".$table2."</td></tr>"; echo "<tr><td>".$table1."<input type='radio' name='vs' value='2' id='2'><label for='2'>".$row['otvet2']."</label> ".$table2."</td></tr>"; echo "<tr><td>".$table1."<input type='radio' name='vs' value='3' id='3'><label for='3'>".$row['otvet3']."</label>".$table2."</td></tr>"; echo "<tr><td>".$table1."<input type='radio' name='vs' value='4' id='4'><label for='4'>".$row['otvet4']."</label>".$table2."</td></tr>"; echo "<tr><td><input type='submit' name='next' value='Далее'></td></tr>"; echo "</from>"; echo "</table>"; }