一个在PHP中利用递归实现论坛分级显示的例子(为了简单起见,我将分页显示部分去掉了)

递归|分页|显示

<?php
/*存放帖子的表结构
CREATE TABLE announce (
   announce_id int(11) NOT NULL auto_increment,
   board_id smallint(6) NOT NULL,
   title varchar(100) NOT NULL,
   content tinytext,
   add_time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
   auth_name varchar(20) NOT NULL,
   auth_mail varchar(40),
   hit_count smallint(6) NOT NULL,
   bytes mediumint(9) NOT NULL,
   parent_id tinyint(4) NOT NULL,
   auth_ip varchar(15) NOT NULL,
   top_id int(11) NOT NULL,
   return_count tinyint(4) NOT NULL,
   face char(3) NOT NULL,
   PRIMARY KEY (announce_id),
   KEY board_id (board_id),
   KEY top_id (top_id)
);
*/

function show_announce($id,$self_id){
    global $dbconnect;
    global $board_id;
    $query="select * from announce where announce_id='$id'";
    $result=mysql_query($query,$dbconnect);
    $myrow=mysql_fetch_array($result);
    mysql_free_result($result);
    echo "<li>\n";
    echo "<img src='http://www.163design.net/p/b/images/mood".$myrow[face].".gif'> ";
    if($self_id!=$id)
        echo "<a href='show.php3?board_id=$board_id&announce_id=$myrow[announce_id]&top_id=$myrow[top_id]'>";
    echo $myrow[title];
    if($self_id!=$id)
        echo "</a>";
    echo " - <strong>【".$myrow[auth_name]."】</strong> ".$myrow[add_time]." <font color=darkblue>[id:$myrow][announce_id] 点击:$myrow[hit_count]]</font> ($myrow[bytes] Bytes) <font color=red>($myrow[return_count])</font>\n";
    $query="select announce_id from announce where parent_id='$id' order by announce_id desc";
    $result=mysql_query($query,$dbconnect);
        echo "<ul>\n";
    while($myrow=mysql_fetch_array($result)){
        show_announce($myrow[announce_id],$self_id);
    }
        echo "</ul>\n";
    mysql_free_result($result);
    echo "</li>";
}
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>论坛内容</title>
<link rel="stylesheet" type="text/css" href="common.css">
</head>

<body>
<?php
//此处需要连接数据库
//可以根据需要加入分页
$query="select announce_id from announce where top_id='0' order by announce_id desc ";
$result_top=mysql_query($query,$dbconnect);
echo "<ul>\n";
while($myrow_top=mysql_fetch_array($result_top)){
    show_announce($myrow_top[announce_id],0);
}
echo "</ul>\n";
mysql_free_result($result_top);
?>
</body>
</html>

时间: 2025-01-20 15:33:02

一个在PHP中利用递归实现论坛分级显示的例子(为了简单起见,我将分页显示部分去掉了)的相关文章

java中利用反射调用另一类的private方法的简单实例_java

我们知道,Java应用程序不能访问持久化类的private方法,但Hibernate没有这个限制,它能够访问各种级别的方法,如private, default, protected, public. Hibernate是如何实现该功能的呢?答案是利用JAVA的反射机制,如下:  import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ReflectDemo

在ironpython中利用装饰器执行SQL操作的例子

  这篇文章主要介绍了在ironpython中利用装饰器执行SQL操作的例子,文章中以操作MySQL为例,需要的朋友可以参考下 比较喜欢python的装饰器, 试了下一种用法,通过装饰器来传递sql,并执行返回结果 这个应用应该比较少 为了方便起见,直接使用了ironpython, 连接的mssql server ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

javaweb-在一个自定义标签中利用out.write输出里一个自定义标签失效

问题描述 在一个自定义标签中利用out.write输出里一个自定义标签失效 public void doTag() throws JspException, IOException { Book book = null; JspContext jc = super.getJspContext(); JspWriter out = jc.getOut(); Object value = jc.getAttribute(bookMap); // if (value instanceof Map) {

Treeview中利用递归无限绑定

    闲话少说:   ①建立数据库   ②aspx 只是一个treeview控件而已,可以设置它的样式   ③cs  public partial class index : System.Web.UI.Page     {         private ProAndCityDataContext dc = new ProAndCityDataContext();         protected void Page_Load(object sender, EventArgs e)    

C#中利用Tchart画图3D图,横坐标是时间,数据传进去没有显示!!!跪求解决方法

问题描述 Tchart横坐标改成时间后,曲线就不出来了.不改很坐标没问题 解决方案 解决方案二:需要给出详细的情况解决方案三:你用绑定看看http://www.cnblogs.com/wpf123/archive/2011/07/07/2100447.html

在ASP中利用Oracle Object for OLE访问Oracle 8

object|oracle|访问 ASP(Active Server Pages)是微软公司为开发互联网络应用程序所提出的工具之一,它是一种类似HTML(Hypertext Markup Language超文本标记语言).Script与CGI(Common Gateway Interface通用网关接口)的结合体,但是其运行效率却比CGI更高.程序编制也比HTML更方便且更有灵活性,程序安全性及保密性远比Script好.因此ASP是目前网页开发技术中最容易学习.灵活性最大的开发工具. ASP内置

wordpress中利用wp_link_pages()实现文章分页显示

这时候,我们就要用到一个wordpress函数--wp_link_pages()了.那么,怎样通过wp_link_pages()函数来实现wordpress文章的分页显示呢?下面,一起来看看吧. 首先,我们到文章页模板文件single.php里查找一下有没有wp_link_pages()函数,如果没有,我们给添加上.然后我们在写文章时,在文章需要分页的地方添加上<!–nextpage–>标签(注意:不是在"可视化"下添加,而是在"文本"状态下添加,这样才

ASP中实现分页显示的七种武器

分页|显示|分页     在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便.自由.而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM).Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便.

ASP中七种实现分页显示的方法

 MS Visual InterDev6.0中七种实现分页显示的方法 我们在编制与数据库有关的Web网页时,由于要显示的数据量巨大,常常面临一个数据记录分页显示的问题.  -------------------------------------------------------------------------------- 进行 ADO 存取数据库时的分页显示,其实就是对 Recordset 的记录进行操作.所以我们首先必须了解 Reordset 对象的属性和方法: BOF 属性:目前指