文谷首页 | 业界传真 | 网络技术 | 服务器 | 数据库 | 存储技术 | 系统安全 | 无线技术 | Cisco | .Net | Windows | Linux | Unix | Java
电子商务 | 网站工程 | 网页设计 | 平面设计 | 多媒体 | 编程语言 | Oracle | MSSQL | Photoshop | ASP | PHP | 实用技巧 | 进程查询 | 文谷论坛
网站工程
 规划发展   网页美工   标记语言   网页编程   Web服务器   广告攻略   开发常识   趋势研究   网站维护   网站数据库   网页设计工具
 论坛
您现在的位置: IT文谷 >> 网站工程 >> 论坛 >> Discuz >> 文章正文
Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]
Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]
Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]
Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]
分5步:
1:从数据库找到源数据
2:需要什么数据
3:执行SQL得到数据
4:格式化数据
5:调用JS

1:从数据库找到源数据,在discuz_threads,自己用PHPMYADMIN导出--
-- 表的结构 `discuz_threads`
--

CREATE TABLE `discuz_threads` (
  `tid` mediumint(8) unsigned NOT NULL auto_increment,
  `fid` smallint(6) unsigned NOT NULL default '0',
  `creditsrequire` smallint(6) unsigned NOT NULL default '0',
  `iconid` smallint(6) unsigned NOT NULL default '0',
  `author` char(15) NOT NULL default '',
  `authorid` mediumint(8) unsigned NOT NULL default '0',
  `subject` char(80) NOT NULL default '',
  `dateline` int(10) unsigned NOT NULL default '0',
  `lastpost` int(10) unsigned NOT NULL default '0',
  `lastposter` char(15) NOT NULL default '',
  `views` mediumint(8) unsigned NOT NULL default '0',
  `replies` smallint(6) unsigned NOT NULL default '0',
  `displayorder` tinyint(1) NOT NULL default '0',
  `highlight` tinyint(1) NOT NULL default '0',
  `digest` tinyint(1) NOT NULL default '0',
  `blog` tinyint(1) NOT NULL default '0',
  `poll` tinyint(1) NOT NULL default '0',
  `attachment` tinyint(1) NOT NULL default '0',
  `closed` mediumint(8) unsigned NOT NULL default '0',
  `threads_moderatetime` char(15) NOT NULL default '',
  `threads_moderate` tinyint(1) NOT NULL default '0',
  `threads_moderator` char(15) NOT NULL default '',
  `threads_moderatorid` char(8) NOT NULL default '',
  `authornick` char(15) NOT NULL default '',
  PRIMARY KEY  (`tid`),
  KEY `displayorder` (`fid`,`displayorder`,`lastpost`),
  KEY `digest` (`digest`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;

--
-- 导出表中的数据 `discuz_threads`
--

INSERT INTO `discuz_threads` VALUES (1, 4, 0, 0, '懑梵', 5, '晕死', 1128577768, 1128623748, 'macrolong', 42, 9, 0, 0, 0, 0, 0, 0, 0, '1128577768', 0, '懑梵', '5', '');

2:需要什么数据看到了把,帖子的N个属性,这几个是关键的,subject(标题),dateline(发表时间),lastpost(最后回复),replies(回复数),其他一样,很好理解的 ,就要着几个。

3:执行SQL得到数据

$result=@mysql_query("SELECT * FROM `$discuz_table` ORDER BY `lastpost` DESC LIMIT 0,$post");
while ($row = mysql_fetch_array($result)) {
    $subject=(strlen($row[subject])<=$titlelength)?$row[subject]:(m_substr($row[subject],0,$titlelength)."..");
    $date=date("y-m-d",$row[dateline]);
    $linedate=date("Y-m-d H:i:s",$row[dateline]);
    $postdate=date("Y-m-d H:i:s",$row[lastpost]);
    $views=$row[views];
}

4:格式化数据

$discuz_lastpost.="<TR><TD>◇<a href=bbs/viewthread.php?tid=$row[tid] title='$title'>$subject</a></TD><TD>$date</TD></TR>";

5:调用JS

把discuz_js.php放在论坛根目录;再在调用页添加以下JS:
<script src="discuz/discuz_js.php?new=8&post=3&hot=6"></script>new=8&post=3&hot=6可以选择你所需要的参数,也可以不要,既可以这样:new=8或者post=3或者hot=6或者new=8&post=3或者post=3&hot=6

简单把,其他什么精华贴,置顶贴都相似,有兴趣的可以自己写。希望这编文章对大家有用。
完整的代码如下:

<?php
// ========================== 文件说明 ==========================//
// 文件说明:Discuz论坛帖子首页调用(菜鸟简洁版)
// --------------------------------------------------------------//
// 程序作者:Spring
// --------------------------------------------------------------//
// 程序主页:http://www.mephp.com
// --------------------------------------------------------------//
// 使用方法:把discuz_js.php放在论坛根目录;再在调用页添加以下JS
// <script src="discuz/discuz_js.php?new=8&post=3&hot=6"></script>
// new=8&post=3&hot=6可以选择你所需要的参数,也可以不要,既可以这样
// new=8或者post=3或者hot=6或者new=8&post=3或者post=3&hot=6
include "config.php";
//==========================变量定义===============================
$titlelength  = 20; //标题长度,按字节
$discuz_table = $tablepre."threads";   //discuz表名
$new          = $HTTP_GET_VARS['new']; //最新发表显示标题数
$post         = $HTTP_GET_VARS['post'];//最新回复显示标题数
$hot          = $HTTP_GET_VARS['hot']; //回复最多显示标题数
//===========================字符截取函数(防乱码)=================
function m_substr($str,$start=0,$strlen) {
    for($i=0;$i<$strlen;$i++)
          if(ord(substr($str,$i,1))>0xa0) $j++;
        if($j%2!=0) $strlen++;
        $str=substr($str,0,$strlen);
        return $str;
}
//===========================调用Discuz帖===========================
@mysql_pconnect($dbhost,$dbuser,$dbpw);
@mysql_select_db($dbname);
//论坛最新发表
$result=@mysql_query("SELECT * FROM `$discuz_table` ORDER BY `dateline` DESC LIMIT 0,$new");
while ($row = mysql_fetch_array($result)) {
    $subject=(strlen($row[subject])<=$titlelength)?$row[subject]:(m_substr($row[subject],0,$titlelength)."..");
    $date=date("y-m-d",$row[dateline]);
    $linedate=date("Y-m-d H:i:s",$row[dateline]);
    $postdate=date("Y-m-d H:i:s",$row[lastpost]);
    $replies=$row[replies];
    $title="$row[subject] 发表:$row[author] $linedate";
    //用户可以修改下行自定义输出格式
    $discuz_lastline.="<TR><TD>◇<a href=bbs/viewthread.php?tid=$row[tid] title='$title'>$subject</a></TD><TD>$date</TD></TR>";
}
//论坛最后回复
$result=@mysql_query("SELECT * FROM `$discuz_table` ORDER BY `lastpost` DESC LIMIT 0,$post");
while ($row = mysql_fetch_array($result)) {
    $subject=(strlen($row[subject])<=$titlelength)?$row[subject]:(m_substr($row[subject],0,$titlelength)."..");
    $date=date("y-m-d",$row[dateline]);
    $linedate=date("Y-m-d H:i:s",$row[dateline]);
    $postdate=date("Y-m-d H:i:s",$row[lastpost]);
    $replies=$row[replies];
    $title="$row[subject] 发表:$row[author] $linedate 回复:$row[lastposter] $postdate";
    //用户可以修改下行自定义输出格式
    $discuz_lastpost.="<TR><TD>◇<a href=bbs/viewthread.php?tid=$row[tid] title='$title'>$subject</a></TD><TD>$date</TD></TR>";
}
//论坛回复最多
$result=@mysql_query("SELECT * FROM `$discuz_table` ORDER BY `replies` DESC LIMIT 0,$hot");
while ($row = mysql_fetch_array($result)) {
    $subject=(strlen($row[subject])<=$titlelength)?$row[subject]:(m_substr($row[subject],0,$titlelength)."..");
    $date=date("y-m-d",$row[dateline]);
    $linedate=date("Y-m-d H:i:s",$row[dateline]);
    $postdate=date("Y-m-d H:i:s",$row[lastpost]);
    $replies=$row[replies];
    $title="$row[subject] 发表:$row[author] $linedate 回复数:$replies";
    //用户可以修改下行自定义输出格式
    $discuz_replies.="<TR><TD>◇<a href=bbs/viewthread.php?tid=$row[tid] title='$title'>$subject</a></TD><TD>$date</TD></TR>";
}
//===========================输出调用帖==========================
if(!empty($new)) $list  .= "◆ 论坛最新发表<TABLE width=98% cellSpacing=3 cellPadding=0 border=1>$discuz_lastline</TABLE>";
if(!empty($post)) $list .= "◆ 论坛最后回复<TABLE width=98% cellSpacing=3 cellPadding=0 border=1>$discuz_lastpost</TABLE>";
if(!empty($hot)) $list  .= "◆ 论坛回复最多<TABLE width=98% cellSpacing=3 cellPadding=0 border=1>$discuz_replies</TABLE>";
echo "document.write(\"$list\");";
?>
Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 进入论坛讨论

    相关文章
    Discuz!NT1.0 RC2 (for SQL Server) 安装说明中文版
    配置NET环境,安装Discuz!NT论坛(有图版)
    Discuz! 5.0论坛安装全功略
    热门文章最新推荐

    版权与免责声明:
    ① 本网转载其他媒体稿件是为传播更多的信息,此类稿件不代表本网观点,版权归原作者所有,本网不承担此类稿件侵权行为的连带责任。
    ② 本站原创文章,转载时请注明出自文谷及作者姓名
    ③在本网BBS上发表言论者,文责自负。
    ④如您因版权等问题需要与本网联络,请在30日内联系 。
    Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]
    Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]2007-1-14 0:25:20Discuz论坛帖子首页调用(菜鸟简洁版)原理[10分钟学会]

    全站热点
    最新推荐
    关于文谷 | 联系文谷 | 免责声明 | 文谷论坛
    Tel: 0577-65690019      E-mail: ichenjian@gmail.com    MSN:ichenjian@hotmail.com    QQ:2911194
    Copyright © 2004-2008 wengu.com 文谷 All Rights Reserved
    浙ICP备05000327号