ДОБРОГО ВРЕМЕНИ СУТОК. Есть скрипт тестирования, есть две таблички MySQL . Вот КОД: PHP: <?php /// Настройки $sql_host="localhost"; $sql_id="root"; $sql_pass=""; $sql_db="test_rggu"; $vopr=15; $html=""; if(isset($_GET["page"])) { $page=addslashes($_GET["page"]); } else { $page=""; } if(isset($_GET["session"])) { $session=addslashes($_GET["session"]); } else { $session=""; } if(isset($_GET["vs"])) { $vs=addslashes($_GET["vs"]); } else { $vs=""; } $link = @mysql_connect ("$sql_host", "$sql_id", "$sql_pass") or die ("Нема конекта"); mysql_query ("SET NAMES cp1251"); $link2 = @mysql_select_db("$sql_db") or die ("aaa"); mysql_query ("SET NAMES cp1251"); if($page=="end") { $otvok=0; echo "$test"; $otvno=15; $ball=0; $query = "SELECT * from vika_users WHERE session='$session';"; $sort=@mysql_query($query); $row = @mysql_fetch_array($sort); $time=$row["date_b"]-$row["date_a"]; $html.="<b>Ваш ник:</b> $row[user]<br> <b>Пройденое время:</b> $time секунд<p><hr size=\"1\" color=\"#CFCFCF\">"; for($i=1; $i<=$vopr; $i++) { $vp="v$i"; $op="o$i"; $sql_o=""; $query = "SELECT * from vika WHERE num='".$row["$vp"]."' LIMIT 1;"; $sort=@mysql_query($query); $row2 = @mysql_fetch_array($sort); $tabl1=array(1=>"",2=>"",3=>"",4=>""); $tabl2=array(1=>"",2=>"",3=>"",4=>""); $ops=$row["$op"]; $vps=$row2["otvet"]; if($ops==$vps) { $tabl1["$ops"]="<table bgcolor=\"#7983C4\" cellspacing=2 cellpadding=2><tr><td width=\"400\" bgcolor=\"#EAF1FF\">"; $tabl2["$ops"]="</td></tr></table>"; $otvok++; $otvno--; $ball+=50; $sql_o.="y$i=1,"; } else { $tabl1["$vps"]="<table bgcolor=\"#ff0000\" cellspacing=1 cellpadding=2><tr><td width=\"400\" bgcolor=\"#ffffff\">"; $tabl2["$vps"]="</td></tr></table>"; $tabl1["$ops"]="<table bgcolor=\"#7983C4\" cellspacing=1 cellpadding=2><tr><td width=\"400\" bgcolor=\"#ffffff\">"; $tabl2["$ops"]="</td></tr></table>"; $ball-=10; $sql_o.="y$i=0,"; } $html.=<<<END <table width="500"> <tr><td align="center"><b>$row2[vopros]</b></td></tr> <tr><td align="center"> <table width="300"> <tr><td><img src="imgs/1.gif"></td><td>$tabl1[1] $row2[otvet1] $tabl2[1]</td></tr> <tr><td><img src="imgs/2.gif"></td><td>$tabl1[2] $row2[otvet2] $tabl2[2]</td></tr> <tr><td><img src="imgs/3.gif"></td><td>$tabl1[3] $row2[otvet3] $tabl2[3]</td></tr> <tr><td><img src="imgs/4.gif"></td><td>$tabl1[4] $row2[otvet4] $tabl2[4]</td></tr> </table> </td></tr> </table> <hr size="1" color="#CFCFCF"> END; $v[$i]=$row["v$i"]; } if ($otvok>=14) $ball=5; else if ($otvok>=10) $ball=4; else if ($otvok>=8) $ball=3; else if ($otvok<=7) $ball=2; $html.=<<<END <b>Правильно отвечено на</b> $otvok <b>вопросов</b><br> <b>Допущено</b> $otvno <b>ошибок</b><br> <b>Ваша оценка</b> $ball <b>балла</b> <div align=center><a href="index.php">Смотреть результат в таблице результатов</a></div> END; $date_b=date("U"); $sql="UPDATE vika_users SET yes=$otvok, no=$otvno, ball=$ball, vopros=1, $sql_o date_b=$date_b WHERE session=\"$session\" AND vopros=0"; $sql_ok=@mysql_query($sql); } else if(isset($_POST["name"]) AND isset($_POST["email"]) AND $_GET["session"] )) { echo $_POST['test']; $query = "SELECT num from vika"; $sort=@mysql_query($query); $count=mysql_num_rows($sort); $countd=round($count/$vopr); $sql_a=""; for($i=1; $i<=$vopr; $i++) { $a=$i*$countd-$countd+1; $b=$i*$countd; $sql_a.="\"".rand($a, $b)."\", "; } $date_a=date("U"); $date_b=date("U"); $user=addslashes($_POST["name"]); $email=addslashes($_POST["email"]); $test=addslashes($_POST["test"]); $ip=$_SERVER['REMOTE_ADDR']; $session=addslashes($_GET["session"]); $query = "SELECT num from vika_users WHERE session='$session';"; $sort=@mysql_query($query); $count=mysql_num_rows($sort); if($count==0) { if(strlen($user)!=0) { $sql=<<<END 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) VALUES ( "", "$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" ); END; $sql_ok = @mysql_query($sql) or die("fig"); /// создаем таблицы } else { $html="Заполните все поля.<br>Вернитесь назад и исправьте все ошибки"; } } else { $sql=1; } $html = "<a href=\"index.php?session=$session\">Начать тестирование:</a>"; } else if(isset($_GET["session"])) { if(isset($_POST["vopros"]) AND isset($_POST["vs"])) { $vopros=addslashes($_POST["vopros"]); $vs=round(addslashes($_POST["vs"])); $date_b=date("U"); $sql="UPDATE vika_users SET $vopros=\"$vs\", date_b=$date_b WHERE session=\"$session\" AND vopros=0"; $sql_ok=@mysql_query($sql); } $i=0; $j=0; $query = "SELECT * from vika_users WHERE session='$session';"; $sort=@mysql_query($query); $row = @mysql_fetch_array($sort); for($j=1; $j<=$vopr; $j++) { if($row["o$j"]==0) { $i++; $v[$i]=$row["v$j"]; $nam[$i]="o$j"; } } if(isset($v[1])) { $query = "SELECT * from vika WHERE num='$v[1]';"; $sort=@mysql_query($query); $row = @mysql_fetch_array($sort); $table1="<table bgcolor=\"#f0f0f0\" cellspacing=1 cellpadding=2><tr><td width=\"400\" bgcolor=\"#ffffff\">"; $table2="</td></tr></table>"; $html=<<<END <table> <form action="index.php?session=$session" method="post"> <input type="hidden" size="1" name="vopros" value="$nam[1]"> <tr><td><b>$row[vopros]</b></td></tr> <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> <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> <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> <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> <tr><td><input type="submit" value="Далее"></td></tr> </from> </table> END; } else { $query = "SELECT num from vika_users WHERE session='$session';"; $sort=@mysql_query($query); $count=mysql_num_rows($sort); if($count==1) { $html="<meta http-equiv='refresh' content='1; url=index.php?page=end&session=$session'>Тест закончен, подводим итоги."; } else { $html="<meta http-equiv='refresh' content='2; url=index.php'>Заполните все поля.<br>Вернитесь назад и исправьте все ошибки"; } } } else { $session=md5(date("U")+rand(1,100)); $html=<<<END <table><tr><td> <table width=180> <form action="index.php?session=$session" method="post"> <tr><td>Имя</td><td><input type="text" size="15" name="name" value=""></td></tr> <tr><td>e-mail</td><td><input type="text" size="15" name="email" value=""></td></tr> <tr><td>e-mail</td><td> <select name="test" size="1"> <option value="0">Выбирите тест</option> <option value="vika">Test_1</option> <option value="vika_new">Test_2</option> </select> </td></tr> <tr><td colspan=2><input type="submit" name="go" value="Войти!"></td></tr> </from> </table> </td><td>В течении теста вам нужно будет ответить на 15 вопросов!<P></td></tr></table> <hr size="1" color="#CFCFCF"> <table width="100%" cellspacing=1 cellpadding=0> END; $query_as = "SELECT * from vika_users WHERE vopros=1 ORDER BY ball DESC LIMIT 50"; $sort_as=@mysql_query($query_as) or die ("База пуста 14 $query_as"); $i=0; $table1="<table bgcolor=\"#99ABD5\" cellspacing=1 cellpadding=1 width=\"100%\">"; $table2="</td></tr></table>"; $html.="<tr> <td width=30 rowspan=2>$table1 <tr><td height=30 bgcolor=\"#EAEAEA\" align=center> № $table2</td> <td>$table1 <tr><td height=30 bgcolor=\"#EAEAEA\" align=center> Имя $table2</td> <td width=60>$table1 <tr><td height=30 bgcolor=\"#EAEAEA\" align=center> Баллы $table2</td> <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> <td width=100>$table1 <tr><td height=30 bgcolor=\"#EAEAEA\" align=center> Дата $table2</td> <tr> "; $table1="<table bgcolor=\"#99ABD5\" cellspacing=1 cellpadding=1 width=\"100%\"><tr><td bgcolor=\"#F4F4F4\" align=center>"; $table2="</td></tr></table>"; while ($row = @mysql_fetch_object($sort_as)) { $i++; $html.="<tr> <td width=30>$table1 $i $table2</td> <td>$table1$row->user$table2</td> <td width=60>$table1$row->ball$table2</td> <td width=60>$table1$row->yes$table2</td> <td width=60>$table1$row->no$table2</td> <td width=100>$table1".date("d.n.Y", $row->date_b)."$table2</td> <tr>"; } $html.="</table>"; } $template = file ('header.html'); if(!isset($html)) { $html = "Ошибка 404"; $page_name=" : Ошибка 404"; } if(!isset($page_name)) { $page_name=" : Error Name Page"; } foreach ($template as $temp) { $temp = ereg_replace("<!--text-->", "$html", $temp); echo "$temp"; } ?><?php require_once("include_options.php");?> Так вот суть проблемы: 1) я добавил поле SELECT для выбора теста 2) Создал еще одну табличку с вопросами аналогичную первой 3) когда я в SQL запросе подставляю переменную '".$_POST['test']."' в место ТАБЛИЦЫ С ВОПРОСАМИ VIKA, то она у меня не определяется // ПОЧЕМУ и КАК СДЕЛАТЬ ЧТОБЫ ОНА РАБОТАЛА???
нет здесь табличка с инфой о пользователя, а есть табличка с вопросами для тестов PHP: <? // Фрагмент кода $vp="v$i"; $op="o$i"; $sql_o=""; $query = "SELECT * from vika WHERE num='".$row["$vp"]."' LIMIT 1;"; // вот сюда мне надо запихнуть эту переменную $_POST['test']; $sort=@mysql_query($query); $row2 = @mysql_fetch_array($sort); $tabl1=array(1=>"",2=>"",3=>"",4=>""); $tabl2=array(1=>"",2=>"",3=>"",4=>""); ?>
Вообще, ошибок по коду очень много. Взять хотя бы это: Во-первых, так не пишут. Во-вторых не видно класса, который задает описывает объект. Для начала вставьте в файл error_reporting(E_ALL), и посмотрите не возникает ли каких ошибок при запросах.
PHP: <? // Фрагмент кода $vp="v$i"; $op="o$i"; $sql_o=""; $query = "SELECT * from ".$_POST['test']." LIMIT 1;"; // Типа так? $sort=@mysql_query($query); $row2 = @mysql_fetch_array($sort); $tabl1=array(1=>"",2=>"",3=>"",4=>""); $tabl2=array(1=>"",2=>"",3=>"",4=>""); ?>