Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с выводом из базы данных
 
 автор: Xenia   (02.06.2006 в 21:33)   письмо автору
 
 

У меня есть скрипт вывода из базы данных лекций. И есть скрипт записис лекций в базу!
Вопрос в том как сделать так , чтобы пр нажатие на гиперссылке названия лекции выводилось в другом фрейме содержание лекции.
Вывод лекций
<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);




?>

   
 
 автор: codexomega   (02.06.2006 в 22:09)   письмо автору
 
   для: 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>

   
 
 автор: Xenia   (02.06.2006 в 23:10)   письмо автору
 
   для: codexomega   (02.06.2006 в 22:09)
 

На скрипт lekcii.php пока не обращайте внимание. У меня сейчас выводит лекции так. В одном фрейме указываем выводятся коды и названия лекций,в другом вводим код лекции(ID),и только после этого отображается нужная. Но я бы хотела миновать формочку с вводом кода, а сделать так, чтобы челкая на название лекции в другом фрейме отображалось ее содержание. Не могли бы вы мне помочь?

   
 
 автор: codexomega   (03.06.2006 в 03:40)   письмо автору
 
   для: Xenia   (02.06.2006 в 23:10)
 

А это что?

<a href = "www.lekcii.com?lekciya=<?php echo  $row['ID'];?>"><?php echo $row['NAZVANIE'];?></a



Вот, кликаете на линк с названием и открывается нужная лекция, ID которой в ссылке идёт после знака ?

   
 
 автор: Xenia   (03.06.2006 в 15:39)   письмо автору
 
   для: 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);




?>
Гиперссылка выводит все имеющиеся лекции, а мне нужно чтобы выводила только одну, определенную. Посмотрите, пожалуйста в чем ошибка???

   
 
 автор: codexomega   (03.06.2006 в 17:10)   письмо автору
 
   для: Xenia   (03.06.2006 в 15:39)
 

Правильно, посмотрите на ваш запрос SQL:

$query = "SELECT * FROM lekcii";


А где условие WHERE?


$query = "SELECT * FROM lekcii WHERE ID = $id ";

   
 
 автор: Xenia   (03.06.2006 в 23:02)   письмо автору
 
   для: 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

   
 
 автор: codexomega   (03.06.2006 в 23:42)   письмо автору
 
   для: 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, она высветится, и тогда приведёте её если надо, ниже.

   
 
 автор: Xenia   (04.06.2006 в 10:51)   письмо автору
 
   для: 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

   
 
 автор: cheops   (04.06.2006 в 11:03)   письмо автору
 
   для: 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;
?>

   
 
 автор: Xenia   (04.06.2006 в 11:10)   письмо автору
 
   для: cheops   (04.06.2006 в 11:03)
 

А как же мне ее передать, эту переменную $id

   
 
 автор: codexomega   (04.06.2006 в 14:53)   письмо автору
 
   для: 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ймы.

   
 
 автор: Xenia   (04.06.2006 в 19:27)   письмо автору
 
   для: codexomega   (04.06.2006 в 14:53)
 

Огромное спасибо!!!
Теперь все работает!!! Здорово!!! Вы мне очень помогли!!!
Кстати не подскажите, можно ли сделать так чтобы гиперссылка не была подчеркнутой.

   
 
 автор: codexomega   (04.06.2006 в 20:18)   письмо автору
 
   для: Xenia   (04.06.2006 в 19:27)
 

Очень рад что всё у вас получилось.
Вопросы про дизайн, лучше задавайте в форуме HTML+CSS+JavaScript
http://softtime.ru/forum/index.php?id_forum=4

Этo уже отдельная тема:)

   
 
 автор: Xenia   (05.06.2006 в 07:38)   письмо автору
 
   для: 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);

?>

   
 
 автор: valenok   (05.06.2006 в 07:44)   письмо автору
 
   для: 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:52)   письмо автору
 
   для: 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++;} ?>

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

   
 
 автор: Xenia   (05.06.2006 в 08:36)   письмо автору
 
   для: 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>

   
 
 автор: cheops   (05.06.2006 в 10:22)   письмо автору
 
   для: Xenia   (05.06.2006 в 08:36)
 

Под новые вопросы лучше заводить новые темы.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования