Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Онлайн тестирование (проблема) [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Без описания
alex4715
Отправлено: 22 Мая, 2009 - 19:41:28
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Вот теперь отлично. Правда выдаёт оишбку :
CODE (text):
скопировать код в буфер обмена
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\site\www.rip.gg\result.php on line 42

это на первом вопросе но дальше все 4 вопроса работают и заносяться в бд
Большое спасибо
 
 Top
vitaliy_mad
Отправлено: 22 Мая, 2009 - 19:43:26
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




похоже вопроса с id=1 нет в базе
 
 Top
alex4715
Отправлено: 22 Мая, 2009 - 19:51:18
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Не думаю изначально $vop равна пустоте а уж после след нажатия кнокпи "Ответить" она равно 1 ну с этим я сам разберусь, а вот за помощь я вам очень благодарен. Редко встретишь человека который не посылает тебя читать учебники или не шлёт в гугл.
Вообщем Спасибо Радость
 
 Top
vitaliy_mad
Отправлено: 22 Мая, 2009 - 19:52:49
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




alex4715 пишет:
Не думаю изначально $vop равна пустоте а уж после след нажатия кнокпи "Ответить" она равно 1 ну с этим я сам разберусь, а вот за помощь я вам очень благодарен. Редко встретишь человека который не посылает тебя читать учебники или не шлёт в гугл.
Вообщем Спасибо

Пожалуйста конечно, но на самом деле, мне просто не было чем заняться... ))) да и скрипт простенький много времени не занял... Радость если что - пиши....

(Отредактировано автором: 22 Мая, 2009 - 19:53:04)

 
 Top
alex4715
Отправлено: 23 Мая, 2009 - 13:57:48
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Возникла такая сложность, Если id в бд начинают идти не по порёдку появиться много ошибок. Как этого можно избежать?
 
 Top
vitaliy_mad
Отправлено: 23 Мая, 2009 - 14:25:22
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




каких ошибок? не должно быть... выборка идет по конкретному id только одного... или у в базе вопросов могут быть олинаковые id?
 
 Top
valenok
Отправлено: 23 Мая, 2009 - 14:33:51
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




SELECT * FROM `tbl` LIMIT порядковый_номер_вопроса,1


-----
Truly yours, Sasha.
 
My status
 Top
alex4715
Отправлено: 23 Мая, 2009 - 15:51:17
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Вот например пример

4 вопроса
Взял удалил 3 вопрос допустим он был не коректен.
вот когда переменая $vop станет =3 будет ошибка потому что такого id нет
Как с этим бороться?
 
 Top
vitaliy_mad
Отправлено: 23 Мая, 2009 - 22:26:13
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




вот это
PHP:
скопировать код в буфер обмена
  1.  
  2.         $q="SELECT * FROM `voprosi` WHERE `id`=$vop";
  3.         $r=mysql_query($q);
  4.         $db=mysql_fetch_array($r);
  5.         echo '<b>'.$db['vopros'].'</b><br />';
  6.         for ($i=0;$i<4;$i++)
  7.         {
  8.             echo '<input type="radio" name="otv" value="'.($i+1).'"> '.$simb[$i].' '.$db[$fields[$i]].'<br />';
  9.         }
  10.  

заменить на
PHP:
скопировать код в буфер обмена
  1.  
  2.         $q="SELECT * FROM `voprosi` WHERE `id`=$vop";
  3.         $r=mysql_query($q);
  4.         if (mysql_num_rows($r)==1)
  5.         {
  6.            $db=mysql_fetch_array($r);
  7.            echo '<b>'.$db['vopros'].'</b><br />';
  8.            for ($i=0;$i<4;$i++)
  9.            {
  10.              echo '<input type="radio" name="otv" value="'.($i+1).'"> '.$simb[$i].' '.$db[$fields[$i]].'<br />';
  11.             }
  12.           }
  13.           else
  14.              echo '<p>нет вопроса <br />';
  15.  
 
 Top
alex4715
Отправлено: 24 Мая, 2009 - 06:02:24
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




а нету возможности просто переотправить человека на тот вопрос который существует или это только java scripts сможет сделать?
 
 Top
valenok
Отправлено: 24 Мая, 2009 - 11:47:21
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




зачем его куда то отправлять ??
Выдай ему просто другое содержаение.
А так не работает?

(Отредактировано автором: 24 Мая, 2009 - 11:48:55)



-----
Truly yours, Sasha.
 
My status
 Top
alex4715
Отправлено: 24 Мая, 2009 - 13:23:34
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




ладно это ерунда, а вот как сделать что бы рандомно выводились вопросы и варианты ответов на них.
Пробывал выводить случайный массив, но он повторялся пытался написать условие что бы не повторялся не получилось, вообщем ваще голова не варит 8(
 
 Top
valenok
Отправлено: 24 Мая, 2009 - 14:11:16
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Показывай как пробовал, что получилось и как надо чтоб получилось.


-----
Truly yours, Sasha.
 
My status
 Top
vitaliy_mad
Отправлено: 24 Мая, 2009 - 16:51:28
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




$vopr=intvla(rand(1,4)); и запоминать какие вопросы уже были... например используя $_SESSION....
 
 Top
alex4715
Отправлено: 24 Мая, 2009 - 16:56:57
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require_once "db.php";
  4. $vop=1;
  5.  
  6. if (!isset($_POST['started']))                                                  
  7.         {
  8.         echo "<form action=" .basename($_SERVER['SCRIPT_NAME'])." method=POST>
  9.        Введите логин: <input name=name type=text><br>
  10.        Введите @mail: <input name=mail type=text><br><br>
  11.        <input type=submit name=started value='Начать тест'>
  12.        </form>";
  13.         }
  14. else
  15. {
  16.         if($_POST['name']==true and $_POST['mail']==true)
  17.         {
  18.                 $res=mysql_query("SELECT name FROM users", $db);
  19.                 while($row=mysql_fetch_array($res))
  20.                 {
  21.                         if($_POST['name']==$row['name'])
  22.                         {
  23.                                 $res1=mysql_query("DELETE name FROM users WHERE name=saha",$db);
  24.                         }
  25.                 }
  26.         echo mysql_error($db);
  27.                 session_start();
  28.                 $_SESSION['name']=$_POST['name'];
  29.                 $_SESSION['mail']=$_POST['mail'];
  30.                 if (isset($_POST['vop']))                                                
  31.         {
  32.                 $vop=$_POST['vop'];
  33.                 $otv=$_POST['otv'];
  34.                 if ($otv>false)
  35.                 {
  36.                 $res1="INSERT INTO users (name,mail,answ_user) VALUES ('".$_SESSION['name']."','".$_SESSION['mail']."','".$otv."')";
  37.                 $r=mysql_query($res1);
  38.                 $vop++;
  39.                 }
  40.                 else
  41.                 {
  42.                 echo "<p>Нет ответа<br />";
  43.             }
  44.         }
  45.         if ($vop>4)
  46.         {
  47.                 echo "Тестирование окончено...";
  48.                 if($res1==true){echo mysql_error($db);}
  49.             //$q="INSERT INTO `users` (`name`,`email`) VALUES (".$_SESSION['name'].",".$_SESSION['mail'].")";
  50.            // $r=mysql_query($q);
  51.                 exit;
  52.         }
  53.         $fields=array("ans1","ans2","ans3","ans4");
  54.         $simb=array("А","Б","В","Г");
  55.         echo "<form action=" .basename($_SERVER['SCRIPT_NAME'])." method=POST>
  56.         <input type=hidden name=started value=yes>";
  57.  
  58.         if ($vop===0)$vop=1;
  59.         echo "<input type=hidden name=vop value=".$vop.">";
  60.         if ($vop<=4)
  61.         {
  62.                 $res2 = mysql_query("SELECT question.quest AS 'quest',
  63.                                                         answer.ans1 AS 'ans1',answer.ans2 AS 'ans2',
  64.                                                         answer.ans3 AS 'ans3',answer.ans4 AS 'ans4'
  65.                                                         FROM question,answer WHERE question.id=answer.id
  66.                                                         and question.id=$vop", $db);
  67.                 $row=mysql_fetch_array($res2);
  68.                 echo "<b>".$row['quest']."</b><br> \n";
  69.                 for ($i=0;$i<=3;$i++)
  70.                 {
  71.                 echo "<input type=radio name=otv value=".$row[$fields[$i]]."> ".$simb[$i]." ".$row[$fields[$i]]."<br>\n";
  72.                 }
  73.                 echo "<input type=hidden name=name value=" .$_SESSION['name'].">
  74.                                   <input type=hidden name=mail value=".$_SESSION['mail'].">
  75.                                   <input type=submit value=Ответить>";
  76.         }
  77.  
  78.         echo"</form>";
  79.     }
  80.     else
  81.     {
  82.         echo "Вы не ввели логин или емайл";
  83.     }
  84. }
  85. ?>
  86.  
  87.  


Пытался варианты ответов функцией shuffle выводить массив $fields, ну они стали повторяться. Не стал долго замарачиваться, так как не понял как исключить повторение.

PHP:
скопировать код в буфер обмена
  1.  
  2.                 $res=mysql_query("SELECT name FROM users", $db);
  3.                 while($row=mysql_fetch_array($res))
  4.                 {
  5.                         if($_POST['name']==$row['name'])
  6.                         {
  7.                                 $res1=mysql_query("DELETE name FROM users WHERE name='$_POST[name]'",$db);
  8.                         }
  9.                 }
  10.  


Пытался сделать проверку если имя в базе существует то удалять его, получаться при ответах в базу вставляеть логин и и мыло и они на протяжении всех вопросов дублируються и попытка удалить существующие имя вызывает ошибку
CODE (text):
скопировать код в буфер обмена
  1. Unknown table 'name' in MULTI DELETE

Знаю что можно сделать как то вложеный селект но не представляю как.

И как вы думаете если я просто запрещу проходить тест поновой с похожим именем это будет норм?
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB