InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Форум, работающий с базой данных MySQL


Чтение топика

Это довольно объемная часть скрипта,по ходу дела я буду давать пояснения.

elseif ($action=="read_topic") {
if ($top_name) {
connect ();

// В этом случае данные выбираются из 2-х таблиц-topics и info.
$query="select message,post_date,info.posts,
info.email from topics,info where topics.name=
info.name and topics.top_name='$top_name' and topics.name='$name'"; $result=mysql_query ($query); $row=mysql_fetch_array ($result); $message=$row["message"]; $post_date=$row["post_date"]; $posts=$row["posts"]; $email=$row["email"]; // Вырезаем теги <br>,чтобы они не отображались на странице. $message=str_replace ("&lt;br&gt;","",$message); $char=$message; // Эта куча преобразований позволяет помещать
//в сообщения смайлики и выводить их на экран в виде рисунков.
$char=str_replace (":)","<img src='./images/smile.gif'>",$char); $char=str_replace (":(","<img src='./images/frown.gif'>",$char); $char=str_replace (":o","<img src='./images/redface.gif'>",$char); $char=str_replace (":D","<img src='./images/biggrin.gif'>",$char); $char=str_replace (";)","<img src='./images/wink.gif'>",$char); $char=str_replace (":p","<img src='./images/tongue.gif'>",$char); $char=str_replace (":cool:","<img src='./images/cool.gif'>",$char); $char=str_replace (":rolleyes:","<img src='./images/rolleyes.gif'>",$char); $char=str_replace (":mad:","<img src='./images/mad.gif'>",$char); $char=str_replace (":eek:","<img src='./images/eek.gif'>",$char); $char=str_replace (":confused:","<img src='./images/confused.gif'>",$char); print_header (); ?> // Теперь все выбранные данные помещаем в html-таблицу и выводим на экран. <p align=right>| <a href="<?php echo $script ?>">Go to topics</a> |
<a href="<?php echo $script ?>?action­d_new_top"> Post new topic</a> | <a href="<?php echo $script ?>?action=post_reply&top_name=
<?php echo $top_name ?>"> Post reply</a> | <p><table cellspacing=0 cellpadding=5 border=1 width0%> <tr><td alignОnter width0 bgcolor="D5E6E1">
<font face="Arial" size=2 color="808080">Author</font> <td bgcolor="D5E6E1"><font face="serif" size=2 color="0000ff">
Topic:</font><font face="serif" size=2 color="ff0000">
<?php echo $top_name ?></font></td></tr> <tr><td rowspan=2 bgcolor="D5E6E1" alignОnter>
<font face="serif" size=3 color="ff0000">
<?php echo $name ?></font> <br><font face="serif" size=2 color="0000ff">
Posts:<?php echo $posts ?></font></td> <td bgcolor="e6e8fa" height0>
<font face="serif" size=1 color="000080">Posted:
<?php echo $post_date ?></font> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:
<?php echo $email ?>"><img src="email.gif" border=0></a> &nbsp;&nbsp;<font face="serif" size=1 color="000080">E-mail </font>
<font face="serif" size=1 color="0000ff"><?php echo $name ?></font> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="<?php echo $script ?>?actionнit&top_name=
<?php echo $top_name ?>&nick=
<?php echo $name ?>&type=message"> <img src="edit.gif" border=0></a>&nbsp;&nbsp;
<font face="serif" size=1 color="000080">
Edit message</font></td></tr> <tr><td bgcolor="f7f7f7"><font face="serif" size=2 color="000080">
<?php echo $char ?></font></td></tr></table> <?php // Ограничиваем количество записей на странице 20 сообщениями. $lines ; $begin=$page*$lines; if (empty ($page)) { $page=0; } // Делаем новый запрос для вывода ответов на топик. $query="select replies.name,reply,reply_date,info.posts,
info.email from replies,info where replies.name=
info.name and replies.top_name=
'$top_name' order by reply_date limit $begin,$lines"; $result=mysql_query ($query); // Дальше все так же,как и в предыдущий раз. while ($row=mysql_fetch_array ($result)) { $nick=$row["name"]; $reply=$row["reply"]; $reply_date=$row["reply_date"]; $posts=$row["posts"]; $mail=$row["email"]; $reply=str_replace ("&lt;br&gt;","",$reply); $char=$reply; $char=str_replace (":)","<img src='./images/smile.gif'>",$char); $char=str_replace (":(","<img src='./images/frown.gif'>",$char); $char=str_replace (":o","<img src='./images/redface.gif'>",$char); $char=str_replace (":D","<img src='./images/biggrin.gif'>",$char); $char=str_replace (";)","<img src='./images/wink.gif'>",$char); $char=str_replace (":p","<img src='./images/tongue.gif'>",$char); $char=str_replace (":cool:","<img src='./images/cool.gif'>",$char); $char=str_replace (":rolleyes:","<img src='./images/rolleyes.gif'>",$char); $char=str_replace (":mad:","<img src='./images/mad.gif'>",$char); $char=str_replace (":eek:","<img src='./images/eek.gif'>",$char); $char=str_replace (":confused:","<img src='./images/confused.gif'>",$char); if (mysql_num_rows ($result)) { ?> <table cellspacing=0 cellpadding=5 border=1 width0%> <tr><td rowspan=2 bgcolor="e6e8fa" alignОnter width0>
<font face="serif" size=2 color="0000ff"> <?php echo $nick ?></font><br>
<font face="serif" size=2 color="333300">
Posts:<?php echo $posts ?></font></td> <td bgcolor="e6e8fa" height0>
<font face="serif" size=1 color="000080">
Posted:<?php echo $reply_date ?></font> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="mailto:<?php echo $mail ?>">
<img src="email.gif" border=0></a> &nbsp;&nbsp;</font><font face="serif" size=1 color="000080">
E-mail </font><font face="serif" size=1 color="0000ff">
<?php echo $nick ?></font> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="<?php echo $script ?>
?actionнit&top_name=<?php echo $top_name ?>
&nick=<?php echo $nick ?>&type=reply&reply_date=
<?php echo $reply_date ?>"> <img src="edit.gif" border=0></a>&nbsp;&nbsp;
<font face="serif" size=1 color="000080">
Edit message</font></td></tr> <tr><td bgcolor="f7f7f7"><font face="serif" size=2>
<?php echo $char ?></td></tr></table> <?php } } // Формируем ссылки для навигации по
// страницам в случае,если количество записей больше 20.
// Для этого подсчитываем количество записей
//в таблице replies для данного топика.
$query="select COUNT(*) as count from replies where top_name='$top_name'"; $result=mysql_query ($query); $items=mysql_fetch_array ($result); $count=$items["count"]; $pagesОil ($count/$lines); // В случае,если количество ответов больше 20,
//формируем ссылки с номерами страниц.
if ($count>$lines) { echo "<p align=right>"; for ($i=0;$i<$pages;$i++) { ?> |<a href="<?php echo $script ?>?action=read_topic&top_name=
<?php echo $top_name ?>&name=
<?php echo $name ?>&page=<?php echo $i ?>">
<?php echo ($i+1) ?></a><?php } } } }

Вот и все.Теперь вы видите,как просто можно работать с БД с помощью PHP,и как это облегчает жизнь. Все это остается за кадром,а посетители форума видят обычную html-страницу.Далее рассмотрим, как можно редактировать сообщения.

[Назад][Содержание][Вперед]


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua