|
|
|
|
|
для: chexov
(29.05.2008 в 16:39)
| | chexov, значит надо все переписывать. | |
|
|
|
|
|
|
|
для: chexov
(29.05.2008 в 16:39)
| | А если так:
<?php
for ($r=1; $r<=$_SESSION['t']; $r++)
{
echo 'Вопрос №'.($i+1).'<br>'; // Добавляем строку с номером вопроса
for ($k=1; $k<=4; $k++)
{
if ($_SESSION['o'.$r] == $arr['otvet']){echo $k.".<font color='red'><u>".$arr['var'.$k]."</u></font><br/>";}
else {echo $k.".".$arr['var'.$k]."<br/>";}
}
}
?>
|
Насчет БД и так далее - я не знаю откуда вы берете данные и как их доводите. Я предлагаю какой-то вариант, а Вы уже должны сами его интегрировать с вашим проектом. Я всего предусмотреть не могу. Создавайте какой-нибудь массив в цикле while, а потом его используйте в данном цикле. | |
|
|
|
|
|
|
|
для: SiM(R)
(29.05.2008 в 15:58)
| | у меня не берется в массив ответы и вопросы
они выводятся из БД в цикле while читайте выше пост
<?
for ($r=1; $r<=$_SESSION['t']; $r++)
{
for ($k=1; $k<=4; $k++)
{
if ($_SESSION['o'.$r] == $arr['otvet']){echo $k.".<font color='red'><u>".$arr['var'.$k]."</u></font><br/>";}
else {echo $k.".".$arr['var'.$k]."<br/>";}
}
}
?>
|
где $_SESSION['t']= порядковый номер ответа пользователем
получается так
<?
1 | 2 | 3 | 1 | //мои ответы в опросе
ВОПРОС1
1.вариант1 //я ответил
2.вариант2
3.вариант3 //правильный
4.вариант4
1.вариант1 //я ответил
2.вариант2
3.вариант3 //правильный
4.вариант4
1.вариант1 //я ответил
2.вариант2
3.вариант3 //правильный
4.вариант4
1.вариант1 //я ответил
2.вариант2
3.вариант3 //правильный
4.вариант4
?>
|
и так со всеми вопросами | |
|
|
|
|
|
|
|
для: chexov
(29.05.2008 в 15:00)
| |
<?php
session_start();
$arr['answ']=array('tt','rwer','3'); // массив с правильными ответами
$arr['var1']=1; $arr['var2']='tt'; $arr['var3']=3;$arr['var4']='4'; // ну типа 4 варианта
$_SESSION['o']=array('tt','qq','3'); //создаете массив с ответами , получается "tt" это ответ на первый вопрос, 'qq' - ответ на второй и тд
for ($i=0 ; $i<=count($_SESSION['o'])-1 ; $i++) // первый цикл, перебирает вопросы по очереди
{
for ($k=1; $k<=4; $k++) // второй цикл, предназначен для выбора варианта ответа (всего 4 варианта)
{
if ($_SESSION['o'][$i] == $arr['answ'][$i]) // итак, если ответ пользователя на данный вопрос верен , то (не зависит от $k)
{ //смотрим какой именно вариант из базы верный (первый, второй, третий или четвертый) в результате выводим жирным тот, который правильный
if ($arr['answ'][$i]==$arr['var'.$k]) echo "<b><font size=5>".$arr['var'.$k]."</b></font>";
else echo $arr['var'.$k];
}
else // если пользователь ответил неверно на вопрос, то все варианты будут выведены без выделения
{
echo $arr['var'.$k];
}
}
echo '<br>'; // так, для удобства, все варианты будут с новой строки
}
?>
// вот участок который нужен Вам
for ($i=0 ; $i<=count($_SESSION['o'])-1 ; $i++) // первый цикл, перебирает вопросы по очереди
{
for ($k=1; $k<=4; $k++) // второй цикл, предназначен для выбора варианта ответа (всего 4 варианта)
{
if ($_SESSION['o'][$i] == $arr['answ'][$i]) // итак, если ответ пользователя на данный вопрос верен , то (не зависит от $k)
{ //смотрим какой именно вариант из базы верный (первый, второй, третий или четвертый) в результате выводим жирным тот, который правильный
if ($arr['answ'][$i]==$arr['var'.$k]) echo "<b><font size=5>".$arr['var'.$k]."</b></font>";
else echo $arr['var'.$k];
}
else // если пользователь ответил неверно на вопрос, то все варианты будут выведены без выделения
{
echo $arr['var'.$k];
}
|
Надеюсь это то, что надо. | |
|
|
|
|
|
|
|
для: chexov
(29.05.2008 в 15:00)
| | Извините, что вмешиваюсь в эту жаркую тему:)
SiM(R) Вам сделал очень верное замечание. Ни в коем случае не генерируете переменные вида $_SESSION['o'. N], используйте массивы, они для этого и предназначались. | |
|
|
|
|
|
|
|
для: SiM(R)
(29.05.2008 в 12:56)
| | ответьте пожалуйста:
chexov (29.05.2008 в 04:47) на этот пост только не rand(1, 4)
|
можн оподробнее а то мозг совсем закипел, мурыжим тему как портянку | |
|
|
|
|
|
|
|
для: chexov
(29.05.2008 в 12:28)
| | Не стоит так отчаиваться ), количество вопросов легко посчитать с помощью команды count().
<?php
for ($i=1; $i<=count($_SESSION['o']); $i++)
{
}
?>
|
Только создавайте сессии не второго уровня, а третьего. то есть не надо создавать сессии вида $_SESSION['o'.$var], Вам потом будет очень трудно с ними работать. Вместо этого делайте так: $_SESSION['o'][$var]. | |
|
|
|
|
|
|
|
для: SiM(R)
(29.05.2008 в 12:09)
| | но у меня только один определенный массив $mass = array('1', '2', '3', '4') который ответственный за варианты ответов(их всегда 4), но 2 массив у меня неопределенный, т.к в опросе может быть сколько угодно вопросов хоть 1000, не буду же я прописывать массив из 1000 пунктов
if ($_SESSION['o'.N1] == $arr['answ']) { echo "<b>".$arr['var'.N2]."</b>"; }
else {echo $arr['var'.N2]; }
N1 - неопределенный
N2 - всегда от 1до4
=======================
Дайте пример кода а то я совсем уже запутался.... хоть тему новую создавай | |
|
|
|
|
|
|
|
для: chexov
(29.05.2008 в 11:50)
| | Ну, цикл который Вы написали в самом начале правильный!!! Сначала Вы там перебираете вопросы $t, а потом при $t=1 (то есть первый вопрос) вы проверяется ответы и формируется список всех вариантов ответов (тут и указывайте количество вариантов ответов, то есть в вашем случаи 4). | |
|
|
|
|
|
|
|
для: SiM(R)
(29.05.2008 в 11:22)
| | я не спрашиваю вас как мне это вывести! я спросил
==========================================
Как сделать чтобы для $n1 было аналогично
for ($n1=1; $n1<=любое число; $n1++)
|
А для $n2 было аналогично
for ($n2=1; $n2<=4; $n2++)
|
В этом коде
<?
if ($_SESSION['o'.$n1] == $arr['answ']) { echo "<b>".$arr['var'.$n2]."</b>"; }
else {echo $arr['var'.$n2]; }
?>
|
вот как выглядит результат
<?
1 | 2 | 3 | 1 | //мои ответы в опросе
ВОПРОС1
1.вариант1 //я ответил
2.вариант2
3.вариант3 //правильный
4.вариант4
ВОПРОС2
1.вариант1 //правильный
2.вариант2 //я ответил
3.вариант3
4.вариант4
ВОПРОС3
1.вариант1
2.вариант2
3.вариант3 //я ответил и он же правильный
4.вариант4
ВОПРОС4
1.вариант1 // я ответил
2.вариант2
3.вариант3
4.вариант4 // правильный
?>
|
| |
|
|
|
|