За последние 24 часа нас посетили 62168 программистов и 1795 роботов. Сейчас ищут 803 программиста ...

Нужно доработать.

Тема в разделе "Вопросы от блондинок", создана пользователем kuliev, 27 фев 2008.

  1. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    ДОБРОГО ВРЕМЕНИ СУТОК.
    Есть скрипт тестирования, есть две таблички MySQL .
    Вот КОД:
    PHP:
    1.  
    2. <?php
    3.  
    4. /// Настройки
    5. $sql_host="localhost";
    6. $sql_id="root";
    7. $sql_pass="";
    8. $sql_db="test_rggu";
    9.  
    10.  
    11.  
    12. $vopr=15;
    13. $html="";
    14. if(isset($_GET["page"])) { $page=addslashes($_GET["page"]); } else { $page=""; }
    15. if(isset($_GET["session"])) { $session=addslashes($_GET["session"]); } else { $session=""; }
    16. if(isset($_GET["vs"])) { $vs=addslashes($_GET["vs"]); } else { $vs=""; }
    17.     $link = @mysql_connect ("$sql_host", "$sql_id", "$sql_pass") or die ("Нема конекта");
    18.         mysql_query ("SET NAMES cp1251");
    19.     $link2 = @mysql_select_db("$sql_db") or die ("aaa");
    20.     mysql_query ("SET NAMES cp1251");
    21.  
    22.     if($page=="end") {
    23. $otvok=0;
    24.  
    25. echo "$test";
    26. $otvno=15;
    27. $ball=0;
    28. $query = "SELECT * from vika_users WHERE session='$session';";
    29. $sort=@mysql_query($query);
    30. $row = @mysql_fetch_array($sort);
    31. $time=$row["date_b"]-$row["date_a"];
    32. $html.="<b>Ваш ник:</b> $row[user]<br> <b>Пройденое время:</b> $time секунд<p><hr size=\"1\" color=\"#CFCFCF\">";
    33. for($i=1; $i<=$vopr; $i++) {
    34. $vp="v$i";
    35. $op="o$i";
    36. $sql_o="";
    37. $query = "SELECT * from vika WHERE num='".$row["$vp"]."' LIMIT 1;";
    38. $sort=@mysql_query($query);
    39. $row2 = @mysql_fetch_array($sort);
    40. $tabl1=array(1=>"",2=>"",3=>"",4=>"");
    41. $tabl2=array(1=>"",2=>"",3=>"",4=>"");
    42. $ops=$row["$op"];
    43. $vps=$row2["otvet"];
    44. if($ops==$vps) {
    45. $tabl1["$ops"]="<table bgcolor=\"#7983C4\" cellspacing=2 cellpadding=2><tr><td width=\"400\" bgcolor=\"#EAF1FF\">";
    46. $tabl2["$ops"]="</td></tr></table>";
    47. $otvok++;
    48. $otvno--;
    49. $ball+=50;
    50. $sql_o.="y$i=1,";
    51. } else {
    52. $tabl1["$vps"]="<table bgcolor=\"#ff0000\" cellspacing=1 cellpadding=2><tr><td width=\"400\" bgcolor=\"#ffffff\">";
    53. $tabl2["$vps"]="</td></tr></table>";
    54. $tabl1["$ops"]="<table bgcolor=\"#7983C4\" cellspacing=1 cellpadding=2><tr><td width=\"400\" bgcolor=\"#ffffff\">";
    55. $tabl2["$ops"]="</td></tr></table>";
    56. $ball-=10;
    57. $sql_o.="y$i=0,";
    58. }
    59.  
    60. $html.=<<<END
    61. <table width="500">
    62. <tr><td align="center"><b>$row2[vopros]</b></td></tr>
    63. <tr><td align="center">
    64. <table width="300">
    65. <tr><td><img src="imgs/1.gif"></td><td>$tabl1[1] $row2[otvet1] $tabl2[1]</td></tr>
    66. <tr><td><img src="imgs/2.gif"></td><td>$tabl1[2] $row2[otvet2] $tabl2[2]</td></tr>
    67. <tr><td><img src="imgs/3.gif"></td><td>$tabl1[3] $row2[otvet3] $tabl2[3]</td></tr>
    68. <tr><td><img src="imgs/4.gif"></td><td>$tabl1[4] $row2[otvet4] $tabl2[4]</td></tr>
    69. </table>
    70. </td></tr>
    71. </table>
    72. <hr size="1" color="#CFCFCF">
    73. END;
    74. $v[$i]=$row["v$i"];
    75. }
    76.  
    77. if ($otvok>=14) $ball=5;
    78. else if ($otvok>=10) $ball=4;
    79. else if ($otvok>=8) $ball=3;
    80. else if ($otvok<=7) $ball=2;
    81.  
    82.  
    83.  
    84. $html.=<<<END
    85. <b>Правильно отвечено на</b> $otvok <b>вопросов</b><br>
    86. <b>Допущено</b> $otvno <b>ошибок</b><br>
    87. <b>Ваша оценка</b> $ball <b>балла</b>
    88. <div align=center><a href="index.php">Смотреть результат в таблице результатов</a></div>
    89. END;
    90. $date_b=date("U");
    91. $sql="UPDATE vika_users SET
    92. yes=$otvok,
    93. no=$otvno,
    94. ball=$ball,
    95. vopros=1,
    96. $sql_o
    97. date_b=$date_b
    98. WHERE session=\"$session\" AND vopros=0";
    99. $sql_ok=@mysql_query($sql);
    100.  
    101. } else if(isset($_POST["name"]) AND isset($_POST["email"]) AND $_GET["session"] )) {
    102. echo  $_POST['test'];
    103. $query = "SELECT num from vika";
    104. $sort=@mysql_query($query);
    105. $count=mysql_num_rows($sort);
    106.  
    107. $countd=round($count/$vopr);
    108. $sql_a="";
    109. for($i=1; $i<=$vopr; $i++) {
    110. $a=$i*$countd-$countd+1;
    111. $b=$i*$countd;
    112. $sql_a.="\"".rand($a, $b)."\", ";
    113. }
    114. $date_a=date("U");
    115. $date_b=date("U");
    116. $user=addslashes($_POST["name"]);
    117. $email=addslashes($_POST["email"]);
    118. $test=addslashes($_POST["test"]);
    119. $ip=$_SERVER['REMOTE_ADDR'];
    120. $session=addslashes($_GET["session"]);
    121. $query = "SELECT num from vika_users WHERE session='$session';";
    122. $sort=@mysql_query($query);
    123. $count=mysql_num_rows($sort);
    124. if($count==0) {
    125. if(strlen($user)!=0) {
    126. $sql=<<<END
    127. INSERT INTO vika_users (num, user, email, ip, ball, date_a, date_b, vopros, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13, o14, o15, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14, y15, yes, no, session)
    128. VALUES (
    129. "", "$user", "$email", "$ip", 0, "$date_a", "$date_b", 0, $sql_a 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "$session"
    130. );
    131. END;
    132. $sql_ok = @mysql_query($sql) or die("fig"); /// создаем таблицы
    133. } else { $html="Заполните все поля.<br>Вернитесь назад и исправьте все ошибки"; }
    134. }
    135. else { $sql=1; }
    136.  
    137. $html = "<a href=\"index.php?session=$session\">Начать тестирование:</a>";
    138. } else if(isset($_GET["session"])) {
    139.  
    140. if(isset($_POST["vopros"]) AND isset($_POST["vs"])) {
    141. $vopros=addslashes($_POST["vopros"]);
    142. $vs=round(addslashes($_POST["vs"]));
    143. $date_b=date("U");
    144. $sql="UPDATE vika_users SET $vopros=\"$vs\", date_b=$date_b WHERE session=\"$session\" AND vopros=0";
    145. $sql_ok=@mysql_query($sql);
    146. }
    147.  
    148.  
    149. $i=0;
    150. $j=0;
    151. $query = "SELECT * from vika_users WHERE session='$session';";
    152. $sort=@mysql_query($query);
    153. $row = @mysql_fetch_array($sort);
    154. for($j=1; $j<=$vopr; $j++) {
    155. if($row["o$j"]==0) { $i++;  $v[$i]=$row["v$j"]; $nam[$i]="o$j"; }
    156. }
    157.  
    158. if(isset($v[1])) {
    159. $query = "SELECT * from vika WHERE num='$v[1]';";
    160. $sort=@mysql_query($query);
    161. $row = @mysql_fetch_array($sort);
    162.  
    163. $table1="<table bgcolor=\"#f0f0f0\" cellspacing=1 cellpadding=2><tr><td width=\"400\" bgcolor=\"#ffffff\">";
    164. $table2="</td></tr></table>";
    165.  
    166. $html=<<<END
    167. <table>
    168. <form action="index.php?session=$session" method="post">
    169. <input type="hidden" size="1" name="vopros" value="$nam[1]">
    170. <tr><td><b>$row[vopros]</b></td></tr>
    171. <tr><td>$table1 <img src="imgs/1.gif"><input type="radio" name="vs" value="1" id="1"> <label for="1">$row[otvet1]</label> $table2</td></tr>
    172. <tr><td>$table1 <img src="imgs/2.gif"><input type="radio" name="vs" value="2" id="2"> <label for="2">$row[otvet2]</label> $table2</td></tr>
    173. <tr><td>$table1 <img src="imgs/3.gif"><input type="radio" name="vs" value="3" id="3"> <label for="3">$row[otvet3]</label> $table2</td></tr>
    174. <tr><td>$table1 <img src="imgs/4.gif"><input type="radio" name="vs" value="4" id="4"> <label for="4">$row[otvet4]</label> $table2</td></tr>
    175. <tr><td><input type="submit" value="Далее"></td></tr>
    176. </from>
    177. </table>
    178. END;
    179. } else {
    180. $query = "SELECT num from vika_users WHERE session='$session';";
    181. $sort=@mysql_query($query);
    182. $count=mysql_num_rows($sort);
    183.  
    184. if($count==1) { $html="<meta http-equiv='refresh' content='1; url=index.php?page=end&session=$session'>Тест закончен, подводим итоги."; }
    185. else { $html="<meta http-equiv='refresh' content='2; url=index.php'>Заполните все поля.<br>Вернитесь назад и исправьте все ошибки"; }
    186. }
    187. } else {
    188. $session=md5(date("U")+rand(1,100));
    189. $html=<<<END
    190. <table><tr><td>
    191. <table width=180>
    192. <form action="index.php?session=$session" method="post">
    193. <tr><td>Имя</td><td><input type="text" size="15" name="name" value=""></td></tr>
    194. <tr><td>e-mail</td><td><input type="text" size="15" name="email" value=""></td></tr>
    195. <tr><td>e-mail</td><td>
    196. <select name="test" size="1">
    197. <option value="0">Выбирите тест</option>
    198. <option value="vika">Test_1</option>
    199. <option value="vika_new">Test_2</option>
    200. </select>
    201.  
    202. </td></tr>
    203. <tr><td colspan=2><input type="submit" name="go" value="Войти!"></td></tr>
    204. </from>
    205. </table>
    206. </td><td>В течении теста вам нужно будет ответить на 15 вопросов!<P></td></tr></table>
    207. <hr size="1" color="#CFCFCF">
    208. <table width="100%" cellspacing=1 cellpadding=0>
    209. END;
    210.  
    211.  
    212.  
    213.  
    214.  $query_as = "SELECT * from vika_users WHERE vopros=1 ORDER BY ball DESC LIMIT 50";
    215. $sort_as=@mysql_query($query_as) or die ("База пуста 14 $query_as");
    216. $i=0;
    217. $table1="<table bgcolor=\"#99ABD5\" cellspacing=1 cellpadding=1 width=\"100%\">";
    218. $table2="</td></tr></table>";
    219.  
    220. $html.="<tr>
    221. <td width=30 rowspan=2>$table1 <tr><td height=30 bgcolor=\"#EAEAEA\" align=center> № $table2</td>
    222. <td>$table1 <tr><td height=30 bgcolor=\"#EAEAEA\" align=center> Имя $table2</td>
    223. <td width=60>$table1 <tr><td height=30 bgcolor=\"#EAEAEA\" align=center> Баллы $table2</td>
    224. <td width=120 colspan=2>$table1 <tr><td bgcolor=\"#EAEAEA\" align=center colspan=2> Ответы </td></tr><tr><td width=60 align=center bgcolor=\"#EAEAEA\"> верно </td><td width=60 align=center bgcolor=\"#EAEAEA\"> не верно $table2</td>
    225. <td width=100>$table1 <tr><td height=30 bgcolor=\"#EAEAEA\" align=center> Дата $table2</td>
    226. <tr>
    227. ";
    228. $table1="<table bgcolor=\"#99ABD5\" cellspacing=1 cellpadding=1 width=\"100%\"><tr><td bgcolor=\"#F4F4F4\" align=center>";
    229. $table2="</td></tr></table>";
    230.  
    231. while ($row = @mysql_fetch_object($sort_as)) {
    232. $i++;
    233. $html.="<tr>
    234. <td width=30>$table1 $i $table2</td>
    235. <td>$table1$row->user$table2</td>
    236. <td width=60>$table1$row->ball$table2</td>
    237. <td width=60>$table1$row->yes$table2</td>
    238. <td width=60>$table1$row->no$table2</td>
    239. <td width=100>$table1".date("d.n.Y", $row->date_b)."$table2</td>
    240. <tr>";
    241. }
    242. $html.="</table>";
    243. }
    244. $template = file ('header.html');
    245. if(!isset($html)) { $html = "Ошибка 404"; $page_name=" : Ошибка 404"; }
    246. if(!isset($page_name)) { $page_name=" : Error Name Page"; }
    247.  
    248. foreach ($template as $temp) {
    249. $temp = ereg_replace("<!--text-->", "$html", $temp);
    250. echo "$temp";
    251. }
    252.  
    253. ?><?php require_once("include_options.php");?>
    Так вот суть проблемы:
    1) я добавил поле SELECT для выбора теста
    2) Создал еще одну табличку с вопросами аналогичную первой
    3) когда я в SQL запросе подставляю переменную '".$_POST['test']."' в место ТАБЛИЦЫ С ВОПРОСАМИ VIKA, то она у меня не определяется // ПОЧЕМУ и КАК СДЕЛАТЬ ЧТОБЫ ОНА РАБОТАЛА???
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Это жесть. Вы где код стырили?
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Сюда подставляете test:
    ?
    :lol:
     
  4. Anonymous

    Anonymous Guest

    записки блондинки...
     
  5. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Ну что никто не может ничего существенного подсказать???
     
  6. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    нет здесь табличка с инфой о пользователя, а есть табличка с вопросами для тестов
    PHP:
    1.  
    2. <?
    3. // Фрагмент кода
    4. $vp="v$i";
    5. $op="o$i";
    6. $sql_o="";
    7. $query = "SELECT * from vika WHERE num='".$row["$vp"]."' LIMIT 1;"; // вот сюда мне надо запихнуть эту переменную $_POST['test'];
    8. $sort=@mysql_query($query);
    9. $row2 = @mysql_fetch_array($sort);
    10. $tabl1=array(1=>"",2=>"",3=>"",4=>"");
    11. $tabl2=array(1=>"",2=>"",3=>"",4=>"");
    12. ?>
     
  7. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Где взял там уже нет!
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Вообще, ошибок по коду очень много.
    Взять хотя бы это:
    Во-первых, так не пишут. Во-вторых не видно класса, который задает описывает объект.

    Для начала вставьте в файл error_reporting(E_ALL), и посмотрите не возникает ли каких ошибок при запросах.
     
  9. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Ошибок то много а скрипт то работает :)
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1.  <?
    2.  // Фрагмент кода
    3.  $vp="v$i";
    4.  $op="o$i";
    5.  $sql_o="";
    6.  $query = "SELECT * from ".$_POST['test']." LIMIT 1;"; // Типа так?
    7.  $sort=@mysql_query($query);
    8.  $row2 = @mysql_fetch_array($sort);
    9.  $tabl1=array(1=>"",2=>"",3=>"",4=>"");
    10.  $tabl2=array(1=>"",2=>"",3=>"",4=>"");
    11.  ?>
    12.  
     
  11. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Аха, именно, только во время работы скрипта переменная не определяется. Хз почему!