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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выбор нескольких ответов 
:(
    Опции темы
kaznadzey
  Дата 22.2.2010, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



в опщем есть код, который создает массив вопросов, которые находятся в БД, и выводит их случайным образом(тоесть не по порядку) на страницу. Вот етот код
<?php
Код

//$mkr=$_POST['kat'];

 if ($mkr)
{
    $query = "SELECT * FROM putannya WHERE `mkr_num`='$mkr'"; 
        $result=mysql_query($query);
        $_SESSION['mkr']=$mkr;
        $baza=array();
        }
 
for ($i=$pochatok; $i<=mysql_num_rows($result); $i+=1) {
$r=mysql_fetch_assoc($result);
//вывод вопроса и вариантов ответов к нему
$baza[$i-1]['vopros']= $r['vopros'];  // Название поля с вопросом vopros?
$baza[$i-1]['id']=$r['id'];
$baza[$i-1]['otvet1']=$r['otvet1'];
$baza[$i-1]['otvet2']=$r['otvet2'];
$baza[$i-1]['otvet3']=$r['otvet3'];
$baza[$i-1]['otvet4']=$r['otvet4'];
$baza[$i-1]['prav']=$r['pravulna'];
}
shuffle($baza);
for ($i=0; $i<$kil/*count($baza)*/; $i++) {
$c=$i+1;
echo "<br/>Питання №$c:<b> ";
echo $baza[$i]['vopros'];
?>
 
<br/> 

</b><input type="checkbox" name="vopros_<?php echo $baza[$i]['id']; ?>"  value="1" /><?php echo $baza[$i]['otvet1'];?>
</br><input type="checkbox" name="vopros_<?php echo $baza[$i]['id']; ?>"  value="2" /><?php echo $baza[$i]['otvet2'];?>
</br><input type="checkbox" name="vopros_<?php echo $baza[$i]['id']; ?>"  value="3" /><?php echo $baza[$i]['otvet3'];?>
</br><input type="checkbox" name="vopros_<?php echo $baza[$i]['id']; ?>"  value="4" /><?php echo $baza[$i]['otvet4'];?>  
 <br />
 <?php
$baza[$i]=implode('3.3', $baza[$i]);
}
$_SESSION['baza']=implode('9.9', $baza); 

?>




после нажатия на кнопке submit, все ответы передаются следующему коду, на обработку результатов, и вывода(правильно ответил пользователь на вопрос, или нет)... Вот второй код
Код


$a=array();
$baza=array();
$baza=explode('9.9', $_SESSION['baza']);
for ($i=0; $i<$kil; $i++) {
$baza[$i]=explode('3.3', $baza[$i]);
$c=$i+1;
echo "$i";
echo $_POST['vopros_'.$baza[$i]['1']];
echo ($_POST['vopros_'.$baza[$i]['1']]==$baza[$i]['6']) ? "Відповідь на питання <b>$c</b> - <font color=blue>правильна</font><br/>" : "Відповідь на питання <b>$c</b> - <font color=red>НЕ правильна!!!</font><br />";
if ($_POST['vopros_'.$baza[$i]['1']]==$baza[$i]['6']){    // Проверить, так ли называется поле в таблице pravulna
//$query = "UPDATE login SET vidpovidi='Відповідь на питання <b>$c<b> - <font color=blue>правильна</font><br/>' WHERE familiya='{$_SESSION['familiya']}' and name='{$_SESSION['name']}' and father='{$_SESSION['father']}' and mkr='{$_SESSION['mkr']}'" or die("Помилка…"); 
$balu=$balu+1;
$a[$i]="<br/>Відповідь на питання <b>$c</b> - <font color=blue>правильна</font>";}
else {$a[$i]="<br/>Відповідь на питання <b>$c</b> - <font color=red>НЕ правильна</font>";}
//{$query = "UPDATE login SET vidpovidi='Відповідь на питання <b>$c<b> - <font color=red>НЕ правильна!!!</font><br/>' WHERE familiya='{$_SESSION['familiya']}' and name='{$_SESSION['name']}' and father='{$_SESSION['father']}' and mkr='{$_SESSION['mkr']}'" or die("Помилка…"); }
}



Вопросы находятся в БД, в таблице, и названия их колонок: otvet1,otvet2,otvet3,otvet4 - ето всё текстовые поля, а правильный ответ в колонке pravulna - там находится цыфра...

код таблицы с вопросами
Код

DROP TABLE IF EXISTS `putannya`;
CREATE TABLE `putannya` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `otvet1` text,
  `otvet2` text,
  `otvet3` text,
  `otvet4` text,
  `pravulna` int(11) DEFAULT NULL,
  `vopros` text NOT NULL,
  `mkr_num` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=24 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=24 ;




ети коды полностю работоспособны, всё работает ок)) просто мне поставили задачу сделать возможность выбора нескольких ответов пользователём, и чтобы во втором коде всё праильно проверялось... Я уже просто не знаю что делать.(( может подскажыте мне как ето реализовать... Надеюсь на выш опыт.. Просто я в только учу етот язык программирования...

скрыншот того как выводятся вопровы наведён ниже


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  1.gif 3,81 Kb
PM MAIL   Вверх
Nigel
Дата 25.2.2010, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


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

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



А что за задача? Тестирование?
Ответы лучше хранить в отдельной таблице, а не otvet1, otvet2.
answers
id|title|question_id|is_correct|.
Для множественного выбора можно добавить дополнительное поле в таблицу вопросы.
PM MAIL   Вверх
kaznadzey
  Дата 26.2.2010, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Nigel,но ведь я зделал таким образом, и в принцыпе всё щтлично работает... мне нужно подстроется именно под етот скрипт)))
 
PM MAIL   Вверх
capitan
Дата 26.2.2010, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

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



kaznadzey,  У Вас не правильно построена структура база. Я бы посоветовал сделать правильно. И переписать весь код, его не так много.  А так делайте костыли.

1. Добавить поле pravulna2
2. в поле pravulna писать ids в виде "::1::2::3::" и делать выборку WHERE LIKE ....
PM MAIL WWW ICQ   Вверх
capitan
Дата 26.2.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

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



Kano,  читайте внимательно 
Цитата

А так делайте костыли.

PM MAIL WWW ICQ   Вверх
Kano
Дата 26.2.2010, 23:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -1
Всего: 0



OK, хорошо. А зачем ты ему предлагаешь «костыли»? За плюс ?
PM MAIL   Вверх
Fortop
Дата 27.2.2010, 00:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Kano, 
Вас это беспокоит? Вы хотите об этом поговорить?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Kano
Дата 27.2.2010, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -1
Всего: 0



Да, это неприятно, когда, как говорится, предлагают яд самоубийце. Но я не настаиваю.
PM MAIL   Вверх
Fortop
Дата 27.2.2010, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Kano, научитесь внимательно читать.

В любом случае, если Вас это настолько беспокоит, то занимайтесь "самоубийцей", а не окружающими.
В противном случае Вы выглядите лицемером.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Kano
Дата 27.2.2010, 04:05 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -1
Всего: 0



Цитата(Fortop @  27.2.2010,  03:55 Найти цитируемый пост)
Kano, научитесь внимательно читать.

— а что я должен увидеть? Что автору ой-ой-ой как надо подстроиться именно под этот скрипт? Пусть наймёт кого-то.
PM MAIL   Вверх
kaznadzey
Дата 27.2.2010, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Kano @ 27.2.2010,  04:05)
Пусть наймёт кого-то.

зачем такой оффтоп....(( Зачем нанимать когото дорабатывать мой код? просто нужно сделать маленькую доделку, и всё!
просто подскажыте мне как создать рядок из ответов которые выбраны в чекбоксе, и вся проблема будет решена))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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