Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт тестирования 
:(
    Опции темы
Kuliev
Дата 4.5.2008, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Alukard,  Спасибо за консультацию! Как раз вчера вечером мучался с постраничным выводом вопросов!
Возникла проблема с циклом For.
К сожалению сейчас на работе и не могу выложить код! Так что домой приду, попробую со свежими мозгами реализовать.
 
PM MAIL   Вверх
MoLeX
Дата 5.5.2008, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Kuliev, на форуме была тема. было предложена несколько способов. поиск в руки и вперед


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Kuliev
Дата 11.5.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



C выводом из базы проблему решил, теперь вторая проблема как записать все ответы в БД

Точнее- у меня стоят checkbox  т.е. юзер может выбрать два варианта ответа или три 
значения их 1 и 0 
Естественно нужно потом вывести   вопросы которые были правильные а какие нет

Вот код:
Код

<?
include ("../config.php");
// функция вывода всех тестов
function add_new() {
        echo "<h1>Выберите тест</h1><center>";
        echo  "[ <a href='".$_SERVER['PHP_SELF']."?page1-for-3.php&up=show_table_test&list=1'>Тесты</a> ]";
}
add_new();
// функция выбора теста
function show_table_test()
{
$per_page=pages;
// получаем номер страницы
if (isset($_GET['list'])) $list=($_GET['list']-1); else $list=1;
// вычисляем первый оператор для LIMIT
$start=abs($list*$per_page);
// составляем запрос и выводим записи
// переменную $start используем, как нумератор записей.
$sql="select * from test ORDER BY id_test LIMIT $start,$per_page";
$result=db($sql);
//выводим таблицу с тестами
echo "<br><br><center><b class='text'>Выбирите тест</b><br>";
echo "<table width='30%' 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 "<form action='".$_SERVER['PHP_SELF']."' method='GET'>";
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&up=show_test&id_test=".$row['id_test']."&name_test=".$row['name_test']."&list=".$_GET['list']."'>".$row['name_test']."</a><input type='hidden' name='name_test' value='".$row['name_test']."'></td>";
}
echo "</form></tr></table>";
$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&up=show_test&list='.$i.'">'.$i."</a> ";
}
  }
     }
// функция вывода таблиц с ответами
function get_table($arr)
{
$bgr=1;
if($bgr==1)
{
$bgcolor='#F5F5F5';
        $bgr=0;
}
else
{
$bgcolor='#FFFFFF';
$bgr=1;
}
    $table  = "<table bgcolor='#ffffd0' cellspacing='1' cellpadding='2' width='400px'>";
    foreach($arr as $row){

        $table  .= "<tr bgcolor='$bgcolor' onMouseOut=this.style.backgroundColor='$bgcolor' onMouseOver=this.style.backgroundColor='#BED9FB'>";
        foreach($row as $ceil){
            $table  .= "<td align='{$ceil['align']}' width={$ceil['width']}>".$ceil['data']."</td>";
        }
        $table  .= "</tr>";
    }
    $table  .= "</table>";

    return $table;
}
function show_test()
{
$per_page   = 2;
$pages       = isset($_POST['pages']) ? (int) $_POST['pages'] : 1;

 // считаем количество строк в базе
$sql        = ("select count(*) from test,vopros where test.id_test='".$_GET['id_test']."' and test.id_test=vopros.id_test;");
$result     = db($sql);
$row        = mysql_fetch_array($result);
$total      = $row['0'];
$next_page  = ($pages <= $total) ? $pages+1 : -1;

// Если все ответы прошли
if ($next_page === -1) {
    echo "<h3>Поздравляем, вы успешно прошли тест</h3>";
}
else{

    $result=db("select * from test,vopros,otvet where test.id_test=".$_GET['id_test']." and test.id_test=vopros.id_test and vopros.id_vopros=otvet.id_vopros and vopros.order=$pages");

    $data   = array();
    while ($row    = mysql_fetch_array($result)){
        $vopros = $row['vopr'];
        $data[] = array(
            array(
                'data'  => "<input type='checkbox' name='vp' value='{$row['logic']}' id='otv_{$row['id_otvet']}'>",
                'width' => "50px",
                'align' => 'center'
            ),
            array(
                'data'  => "<label for='otv_{$row['id_otvet']}'>".$row['otvet']."</label>",
                'width' => "340px",
                'align' => 'left'
            )
        );

    }

    if(isset($_POST['vp']));
    else
    {
    $sql=("")
    $result=db($sql);
    
     }
    echo "<br><br><b class='navy'>Вопрос №</b> <b class='red'>".$pages."</b>";
    echo "<div align='center'>
                <form action='' method='POST'>
              <b class='text'>" . $vopros . "</b><br><br>".
              get_table($data).
              "<input type='hidden' value='{$next_page}' name='pages' />".
              "<input type='submit' value='некст'/>".
            "</form>" .
         "</div>";

}
}
// конструкция switch
switch($_GET['up']) {

     case "show_table_test":
   show_table_test();
    break;

    case "show_test":
   show_test();
    break;
}


?>

PM MAIL   Вверх
MoLeX
Дата 12.5.2008, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Kuliev, сразу пиши в БД. после нажатия на следующию страницу (например на вторую) пиши в БД ответ с первой


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.