|
|
|
| У меня есть скрипт вывода из базы данных лекций. И есть скрипт записис лекций в базу!
Вопрос в том как сделать так , чтобы пр нажатие на гиперссылке названия лекции выводилось в другом фрейме содержание лекции.
Вывод лекций
<body BGCOLOR=#ccccff leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<center>
<a href ="forma_lekcii.html" TARGET="Frame_3"><IMG SRC="333.gif"BORDER="0"></a></center><br>
<?
@$db=mysql_connect('localhost','root','');
mysql_select_db('BD_Xenia');
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$query = "SELECT * FROM lekcii";
$query = "SELECT * FROM Lekcii ORDER BY ID ASC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$naz = $row["NAZVANIE"];
$id=$row["ID"];
??????????????????????????????????????????
}
mysql_free_result($result);
?>
</body>
Вставка лекций
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<body BACKGROUND="111.jpg">
<FORM action="lekcii.php" method="post">
<Center><font color= "9933ff" face="Monotype Corsiva"size="5">
Для просмотра лекции, введите код
<br>
<br>
<input type="text" name="id" value="" size="10" maxlength="150" >
<INPUT TYPE="submit"name="doUpload" VALUE="Просмотр">
</Center>
</font>
</FORM>
</body>
</html>
LEKCII.PHP
<?
@$db=mysql_connect('localhost','root','');
mysql_select_db('BD_Xenia');
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$query = "SELECT * FROM lekcii where ID=$id";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$id = $row["ID"];
$naz = $row["NAZVANIE"];
$sod = $row["SODERGANIE"];
echo'<CENTER><p><font face="Arial, Helvetica, sans-serif" size="4">'.$naz.'</p></font><HR NOSHADE WIDTH="50%"></CENTER><br>';
echo'<p>'.$sod.'</p><HR NOSHADE WIDTH="50%"><br>';
echo'<center><p>'.$id.'</p></center>';
}
mysql_free_result($result);
?> | |
|
|
|
|
|
|
|
для: Xenia
(02.06.2006 в 21:33)
| | А в чём конкретно проблема?
В запросе SQL, или в отображении лекции в другом фрейме?
У вас уже имеется:
SELECT * FROM lekcii WHERE ID=$id;
|
Этого должно хватить.
<a href = "www.lekcii.com?lekciya=<?php echo $row['ID'];?>"><?php echo $row['NAZVANIE'];?></a>
|
| |
|
|
|
|
|
|
|
для: codexomega
(02.06.2006 в 22:09)
| | На скрипт lekcii.php пока не обращайте внимание. У меня сейчас выводит лекции так. В одном фрейме указываем выводятся коды и названия лекций,в другом вводим код лекции(ID),и только после этого отображается нужная. Но я бы хотела миновать формочку с вводом кода, а сделать так, чтобы челкая на название лекции в другом фрейме отображалось ее содержание. Не могли бы вы мне помочь? | |
|
|
|
|
|
|
|
для: Xenia
(02.06.2006 в 23:10)
| | А это что?
<a href = "www.lekcii.com?lekciya=<?php echo $row['ID'];?>"><?php echo $row['NAZVANIE'];?></a
|
Вот, кликаете на линк с названием и открывается нужная лекция, ID которой в ссылке идёт после знака ? | |
|
|
|
|
|
|
|
для: codexomega
(03.06.2006 в 03:40)
| | <body BGCOLOR=#ccccff leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<center>
<a href ="forma_lekcii.html" TARGET="Frame_3"><IMG SRC="333.gif"BORDER="0"></a></center><br>
<?
@$db=mysql_connect('localhost','root','');
mysql_select_db('BD_Xenia');
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$query = "SELECT * FROM lekcii";
$query = "SELECT * FROM Lekcii ORDER BY ID ASC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$naz = $row["NAZVANIE"];
$id=$row["ID"];
echo'<a href = "lekcii.php" TARGET="Frame_3">'.$id.'';
echo' '.$naz.'</a>
<HR NOSHADE WIDTH="100%">';
}
mysql_free_result($result);
?>
lekcii.php
<?
@$db=mysql_connect('localhost','root','');
mysql_select_db('BD_Xenia');
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$query = "SELECT * FROM lekcii";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$id = $row["ID"];
$naz = $row["NAZVANIE"];
$sod = $row["SODERGANIE"];
echo'<CENTER><p><font face="Arial, Helvetica, sans-serif" size="4">'.$naz.'</p></font><HR NOSHADE
WIDTH="50%"></CENTER><br>';
echo'<p>'.$sod.'</p><HR NOSHADE WIDTH="50%"><br>';
echo'<center><p>'.$id.'</p></center>';
}
mysql_free_result($result);
?>
Гиперссылка выводит все имеющиеся лекции, а мне нужно чтобы выводила только одну, определенную. Посмотрите, пожалуйста в чем ошибка??? | |
|
|
|
|
|
|
|
для: Xenia
(03.06.2006 в 15:39)
| | Правильно, посмотрите на ваш запрос SQL:
$query = "SELECT * FROM lekcii";
|
А где условие WHERE?
$query = "SELECT * FROM lekcii WHERE ID = $id ";
|
| |
|
|
|
|
|
|
|
для: codexomega
(03.06.2006 в 17:10)
| | А где это условие ствить, в первом или во втором скрипте. Если во втором то ошибку пишет:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\www\mysite\lekcii.php on line 13
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\www\mysite\lekcii.php on line 26 | |
|
|
|
|
|
|
|
для: Xenia
(03.06.2006 в 23:02)
| | Вот так должно примерно быть, в том файле, в котором выводится содержание лекций:
<?php
// get ID from URL
if(isset($_GET['id']))
$id=$_GET['id'];
else
$id = "";
// connect to DB
@$db=mysql_connect('localhost','root','');
mysql_select_db('BD_Xenia');
// encode chars
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
// create query
$query = "SELECT * FROM lekcii WHERE ID = $id";
// execute query or show error
$result = mysql_query($query) or die('SQL Error !'.$query.'<br>'.mysql_error());
// close connection
mysql_close();
// show data
while($row = mysql_fetch_array($result)){
// initialise data vars
$id = $row["ID"];
$naz = $row["NAZVANIE"];
$sod = $row["SODERGANIE"];
// print DB results
echo'<CENTER><p><font face="Arial, Helvetica, sans-serif" size="4">'.$naz.'</p></font><HR NOSHADE
WIDTH="50%"></CENTER><br>';
echo'<p>'.$sod.'</p><HR NOSHADE WIDTH="50%"><br>';
echo'<center><p>'.$id.'</p></center>';
}
mysql_free_result($result);
?>
|
Если будет ошибка в запросе SQL, она высветится, и тогда приведёте её если надо, ниже. | |
|
|
|
|
|
|
|
для: codexomega
(03.06.2006 в 23:42)
| | Теперь такая ошибка!
SQL Error !SELECT * FROM lekcii WHERE ID =
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 | |
|
|
|
|
|
|
|
для: Xenia
(04.06.2006 в 10:51)
| | Это связано с тем, что скрипту не передаётся параметр $id и блок кода
<?php
// get ID from URL
if(isset($_GET['id']))
$id=$_GET['id'];
else
$id = "";
?>
|
Присваивает переменной $id пустую строку, обычно поступают примерно так
<?php
// get ID from URL
if(isset($_GET['id']))
$id=$_GET['id'];
else
$id = 0;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(04.06.2006 в 11:03)
| | А как же мне ее передать, эту переменную $id | |
|
|
|
|
|
|
|
для: Xenia
(04.06.2006 в 11:10)
| | Переменная передается через адресную строку.
Скажем, у вас 2 файла.
В первом только ссылки на статьи(названия), которые выводятся в цикле while, а во втором содержание статей.
Все ссылки похожи на вот это:
<a href ="soderzhanie.php?id=<?php echo $id; ?>">Статья 1</a>
<a href ="soderzhanie.php?id=<?php echo $id; ?>">Статья 2</a>
<a href ="soderzhanie.php?id=<?php echo $id; ?>">Статья 3</a>
|
Таким образом, выводимый из базы данных id, ставится в ссылке после вопросительного знака.
И вот тогда, в адресной строке той страницы, куда вы переходите по ссылке(soderzhanie.php), высвечивается что-то такое:
www.mysite.com/soderzhanie.php?id=1
|
Вот этот id=число, и ловится GET'ом.
Понятно?
PS:
Забудьте пока про фреймы, сделайте пробу на 2-х отдельных файлах, без фреймов.
Если заработает как положено, тогда не трудно будет подогнать под фрeймы. | |
|
|
|
|
|
|
|
для: codexomega
(04.06.2006 в 14:53)
| | Огромное спасибо!!!
Теперь все работает!!! Здорово!!! Вы мне очень помогли!!!
Кстати не подскажите, можно ли сделать так чтобы гиперссылка не была подчеркнутой. | |
|
|
|
|
|
|
|
для: Xenia
(04.06.2006 в 19:27)
| | Очень рад что всё у вас получилось.
Вопросы про дизайн, лучше задавайте в форуме HTML+CSS+JavaScript
http://softtime.ru/forum/index.php?id_forum=4
Этo уже отдельная тема:) | |
|
|
|
|
|
|
|
для: codexomega
(04.06.2006 в 20:18)
| | Извините, что продолжаю здесь, просто не могу создать новую тему. Не могли бы вы помочь написать обработчик результата теста
<?
if(isset($_GET['ID']))
$id=$_GET['ID'];
else
$id ="";
@$db=mysql_connect('localhost','root','');
mysql_select_db('BD_Xenia');
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$query = "SELECT * FROM test where ID=$id";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$id = $row["ID"];
$naz = $row["NAZVANIE_TESTA"];
$v_1 = $row["VOPROS_1"];
$o_a_1 = $row["OTVET_A_1"];
$o_b_1 = $row["OTVET_B_1"];
$o_c_1 = $row["OTVET_C_1"];
$o_v_1 = $row["OTVET_VERNO_1"];
$v_2 = $row["VOPROS_2"];
$o_a_2 = $row["OTVET_A_2"];
$o_b_2 = $row["OTVET_B_2"];
$o_c_2 = $row["OTVET_C_2"];
$o_v_2 = $row["OTVET_VERNO_2"];
$v_3 = $row["VOPROS_3"];
$o_a_3 = $row["OTVET_A_3"];
$o_b_3 = $row["OTVET_B_3"];
$o_c_3 = $row["OTVET_C_3"];
$o_v_3 = $row["OTVET_VERNO_3"];
$v_4 = $row["VOPROS_4"];
$o_a_4 = $row["OTVET_A_4"];
$o_b_4 = $row["OTVET_B_4"];
$o_c_4 = $row["OTVET_C_4"];
$o_v_4 = $row["OTVET_VERNO_4"];
$v_5 = $row["VOPROS_5"];
$o_a_5 = $row["OTVET_A_5"];
$o_b_5 = $row["OTVET_B_5"];
$o_c_5 = $row["OTVET_C_5"];
$o_v_5 = $row["OTVET_VERNO_5"];
$v_6 = $row["VOPROS_6"];
$o_a_6 = $row["OTVET_A_6"];
$o_b_6 = $row["OTVET_B_6"];
$o_c_6 = $row["OTVET_C_6"];
$o_v_6 = $row["OTVET_VERNO_6"];
echo'
<FORM action="test_rez.php" method="post">
<CENTER><p><font face="Arial, Helvetica, sans-serif" size="4">'.$naz.'</p></font><HR NOSHADE WIDTH="50%"></CENTER><br>
<p><font color="#990099" face="Arial Black, Helvetica, sans-serif" size="3">'.$v_1.'</p></font><br>
<INPUT TYPE=RADIO NAME="test_1"> '.$o_a_1.'<BR>
<INPUT TYPE=RADIO NAME="test_1"> '.$o_b_1.'<BR>
<INPUT TYPE=RADIO NAME="test_1"> ' .$o_c_1.'<P>
<HR NOSHADE WIDTH="100%">
<p><font color="#990099" face="Arial Black, Helvetica, sans-serif" size="3">'.$v_2.'</p></font><br>
<INPUT TYPE=RADIO NAME="test_2"> '.$o_a_2.'<BR>
<INPUT TYPE=RADIO NAME="test_2"> '.$o_b_2.'<BR>
<INPUT TYPE=RADIO NAME="test_2"> ' .$o_c_2.'<P><HR NOSHADE WIDTH="100%">
<p><font color="#990099" face="Arial Black, Helvetica, sans-serif" size="3">'.$v_3.'</p></font><br>
<INPUT TYPE=RADIO NAME="test_3"> '.$o_a_3.'<BR>
<INPUT TYPE=RADIO NAME="test_3"> '.$o_b_3.'<BR>
<INPUT TYPE=RADIO NAME="test_3"> ' .$o_c_3.'<P><HR NOSHADE WIDTH="100%">
<p><font color="#990099" face="Arial Black, Helvetica, sans-serif" size="3">'.$v_4.'</p></font><br>
<INPUT TYPE=RADIO NAME="test_4"> '.$o_a_4.'<BR>
<INPUT TYPE=RADIO NAME="test_4"> '.$o_b_4.'<BR>
<INPUT TYPE=RADIO NAME="test_4"> ' .$o_c_4.'<P>
<HR NOSHADE WIDTH="100%">
<p><font color="#990099"face="Arial Black, Helvetica, sans-serif" size="3">'.$v_5.'</p></font><br>
<INPUT TYPE=RADIO NAME="test_5"> '.$o_a_5.'<BR>
<INPUT TYPE=RADIO NAME="test_5"> '.$o_b_5.'<BR>
<INPUT TYPE=RADIO NAME="test_5"> ' .$o_c_5.'<P><HR NOSHADE WIDTH="100%">
<p><font color="#990099" face="Arial Black, Helvetica, sans-serif" size="3">'.$v_6.'</p></font><br>
<INPUT TYPE=RADIO NAME="test_6"> '.$o_a_6.'<BR>
<INPUT TYPE=RADIO NAME="test_6"> '.$o_b_6.'<BR>
<INPUT TYPE=RADIO NAME="test_6"> ' .$o_c_6.'<P><HR NOSHADE WIDTH="100%">
<center>Для просмотра результата введите код: '.$id.'<br><input type="text" name="id" value="" size="5" maxlength="150"
><br><INPUT TYPE="submit"name="go" VALUE="Посмотреть результат"></center>';
}
mysql_free_result($result);
mysql_close();
?>
Это формочка теста. Теперь мне нужно написать скрипт который будет ее обрабатывать.
Никак не могу разобраться как работать с радиокнопками.
<?
@$db=mysql_connect('localhost','root','');
mysql_select_db('BD_Xenia');
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$query = "SELECT * FROM test where ID=$id ";
$result = mysql_query($query);
if(!$result)
exit( "Error in query:" . mysql_error() );
while($row = mysql_fetch_array($result)){
$naz = $row["NAZVANIE_TESTA"];
$v_1 = $row["VOPROS_1"];
$o_a_1 = $row["OTVET_A_1"];
$o_b_1 = $row["OTVET_B_1"];
$o_c_1 = $row["OTVET_C_1"];
$o_v_1 = $row["OTVET_Verno_1"]; (Правильный ответ на 1 вопрос)
$v_2 = $row["VOPROS_2"];
$o_a_2 = $row["OTVET_A_2"];
$o_b_2 = $row["OTVET_B_2"];
$o_c_2 = $row["OTVET_C_2"];
$o_v_2 = $row["OTVET_Verno_2"];(Правильный ответ на 2 вопрос)
$v_3 = $row["VOPROS_3"];
$o_a_3 = $row["OTVET_A_3"];
$o_b_3 = $row["OTVET_B_3"];
$o_c_3 = $row["OTVET_C_3"];
$o_v_3 = $row["OTVET_Verno_3"];(Правильный ответ на 3 вопрос)
$v_4 = $row["VOPROS_4"];
$o_a_4 = $row["OTVET_A_4"];
$o_b_4 = $row["OTVET_B_4"];
$o_c_4 = $row["OTVET_C_4"];
$o_v_4 = $row["OTVET_Verno_4"];(Правильный ответ на 4 вопрос)
$v_5 = $row["VOPROS_5"];
$o_a_5 = $row["OTVET_A_5"];
$o_b_5 = $row["OTVET_B_5"];
$o_c_5 = $row["OTVET_C_5"];
$o_v_5 = $row["OTVET_Verno_5"];(Правильный ответ на 5 вопрос)
$v_6 = $row["VOPROS_6"];
$o_a_6 = $row["OTVET_A_6"];
$o_b_6 = $row["OTVET_B_6"];
$o_c_6 = $row["OTVET_C_6"];
$o_v_6 = $row["OTVET_Verno_6"];(Правильный ответ на 6 вопрос)
Как сравнивать ответы???????
echo' Количество правильных ответов:'.$sum.'<br>';
}
if($sum == 0){
echo'Вы неправильно ответили на все вопросы';
}else
if($sum <3){
echo'Оценка 2';
}else
if($sum ==3){
echo'Оценка 3';
} else if($sum ==4){
echo'Оценка 4';
}else
if($sum ==5){
echo'Оценка 4';
}else{echo'Оценка 5';
}
mysql_free_result($result);
?> | |
|
|
|
|
|
|
|
для: Xenia
(05.06.2006 в 07:38)
| | if(isset($_GET['ID']))
$id=$_GET['ID'];
else
$id ="";
@$db=mysql_connect('localhost','root','');
--
Всегда порверяй что тебе там прислали и ограничивай доступ в бд | |
|
|
|
|
|
|
|
для: valenok
(05.06.2006 в 07:44)
| | <Option name='vopros3' value='otvet1'>Otvet1</option>
<Option name='vopros3' value='otvet3'>Otvet3</option>
<Option name='vopros3' value='otvet2'>Otvet2</option>
<?php if($_POST['vopros3']==$pravilmiy_otvet){ Ура $sum++;} ?>
Проверку на правильность ввода не забывай. | |
|
|
|
|
|
|
|
для: valenok
(05.06.2006 в 07:52)
| | Почему то у меня новая тема не добавляется. У меня еще вопрос
Нужно вывести данные из базы данных и расположить их по алфавиту. Подскажите как это сделать?
<body BGCOLOR=#ccccff leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<center>
<a href ="index_view.php" TARGET="Frame_2"><IMG SRC="444.gif"BORDER="0"></a></center><br>
<?
@$db=mysql_connect('localhost','root','');
mysql_select_db('BD_Xenia');
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$query = "SELECT * FROM glosarii";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$ter = $row["TERMIN"];
$id=$row["ID"];
echo'<font color= "9933ff" face="Arial Black"size="2"><a href ="opisanie.php?ID= '.$id.';" TARGET="Frame_2"> '.$ter.' </a></font><HR NOSHADE WIDTH="100%"><br>';
}
mysql_free_result($result);
?>
</body> | |
|
|
|
|
|
|
|
для: Xenia
(05.06.2006 в 08:36)
| | Под новые вопросы лучше заводить новые темы. | |
|
|
|