首页 > 代码库 > PHP经典项目案例-(一)博客管理系统3

PHP经典项目案例-(一)博客管理系统3

本篇给出首页左侧导航栏及右部公告区的实现。

六、左侧导航栏:

1、日历:

这里单独一个php文件,在显示日历的那个地方直接引用该文件即可:

cale.php

<?php 
class calendar{ 
    private $year,$month,$day; 
    private $week=array("Sun","Mon","Tue","Wed","Thu","Fri","Sat"); 
    private $_month=array( 
        "01"=>"一月", 
        "02"=>"二月", 
        "03"=>"三月", 
        "04"=>"四月", 
        "05"=>"五月", 
        "06"=>"六月", 
        "07"=>"七月", 
        "08"=>"八月", 
        "09"=>"九月", 
        "10"=>"十月", 
        "11"=>"十一月", 
        "12"=>"十二月" 
    ); 
    function setyear($year){    //设置年份 
        $this->year=$year; 
    } 
    function getyear(){   //获得年份 
        return $this->year; 
    } 
    function setmonth($month){    //设置月份 
        $this->month=$month; 
    } 
    function getmonth(){    //获得月份
        return $this->month; 
    } 
    function setday($day){   //设置日期 
        $this->day=$day; 
    } 
    function getday(){   //获得日期 
        return $this->day; 
    } 
    function OUT(){   //输出日历 
        $this->_env(); //设置显示的日期
        $week=$this->getweek($this->year,$this->month,$this->day);     //获得日期为星期几
        $fweek=$this->getweek($this->year,$this->month,1);     //获得此月第一天为星期几 
        echo "<div style=width:255;font:9pt> <form action=$_SERVER[PHP_SELF] method='post' style='margin:0'> <select name='month' onchange='this.form.submit();'>"; 
        for($ttmpa=1;$ttmpa<13;$ttmpa++){     //输出12个月 
            $ttmpb=sprintf("%02d",$ttmpa); 
            if(strcmp($ttmpb,$this->month)==0){ 
                $select="selected style='background-color:#FAFDE2'"; 
            }else{ 
                $select=""; 
            } 
            echo "<option value=http://www.mamicode.com/'$ttmpb' $select>".$this->_month[$ttmpb].""; >

在index.php里面直接引用该文件

 <!-- 日历显示 -->
 <tr>
 <span style="white-space:pre">	</span><td height="155" align="center" valign="top"><?php include 'cale.php';?></td>
 </tr>

2、最新文章显示:

<!-- 最新文章显示 -->
<tr>
<span style="white-space:pre">	</span><td height="125" align="center" valign="top" >
        <table width="200" border="0" cellpadding="0" cellspacing="0">
        <tr>
        <span style="white-space:pre">	</span><td>
                <table width="201" border="0" cellpadding="0" cellspacing="0" style="margin-top:25px" valign="top">
                </table>
                </td>
        </tr>
        <?php
                                
                $sql="select id,title from tb_article order by id desc limit 5";
                $res = $sqlHelper->execute_dql($sql);
                $i=1;
                while($info=$res->fetch_assoc()){
        ?>
        <tr>
        <span style="white-space:pre">	</span><td width="201" align="left" valign="top">
                <a href=http://www.mamicode.com/"article.php?file_id=<?php echo $info['id'];?>" target="_blank"><?php echo $i."、".substr($info['title'],0,27);?>>这里我去查询数据库的时候使用了自己的工具类sqlHelper.class.php

这里给出上面用到的方法实现代码:

sqlHelper.class.php部分代码:

 class SqlHelper{
        
        public $mysqli;
        public $dbname="db_tmlog";
        public $username="root";
        public $password="root";
        public $host="localhost";
        
        public function __construct(){

            $this->mysqli = new mysqli($this->host, $this->username, $this->password, $this->dbname);
            if($this->mysqli->connect_error){
                die("连接失败".$this->mysqli->connect_error);
            }

            $this->mysqli->query("set names utf8");
        }
        //执行dql语句
        public function execute_dql($sql){
            
            $res = $this->mysqli->query($sql) or die($this->mysqli->error);
            //这里返回的是一个结果集,当调用$row = $res->fetch_assoc()时是一条一条的向下走,应该使用while循环
            return $res;
        }                                                                                                                           <span style="font-family: Arial, Helvetica, sans-serif;">}</span>

dql语句就是简单的查询语句。

在使用数据库查询之前,先把这个文件包进去,然后new一个工具类对象,然后使用对象调用里面的函数。


3、最新图片显示

<!-- 最新图片显示 -->
<tr>
<span style="white-space:pre">	</span><td height="201" align="center" valign="top"><br/>
        <table width="145"  border="0" cellspacing="0" cellpadding="0">
        <tr>
        <span style="white-space:pre">	</span><td>
                <table width="201"  border="0" cellspacing="0" cellpadding="0" valign="top" style="margin-top:5px;">
                <?php
		<span style="white-space:pre">	</span>$sql="select id,tpmc,file from tb_tpsc order by id desc limit 2";
			$res2 = $sqlHelper->execute_dql($sql);
			while($info=$res2->fetch_assoc()){
			<span style="white-space:pre">	</span>$query="select * from tb_tpsc where id=".$info['id'];
                    <span style="white-space:pre">		</span>$result=$sqlHelper->execute_dql($query);
                    <span style="white-space:pre">		</span>if($row = $result->fetch_assoc()){   
                        <span style="white-space:pre">		</span>$data = http://www.mamicode.com/$row['file'];>
同样使用了数据库查询。

4、公告区实现

在公告区使用了我以前没有见过的一个标签<marquee>

它里面设置了一些属性,就是当鼠标停留在上面的时候它就停止滚动,离开的时候就开始滚动。


<?php
<span style="white-space:pre">	</span>$p_sql = "select * from tb_public order by id desc";
        $p_rst = $sqlHelper->execute_dql($p_sql);
?>
<marquee onm ouseOver="this.stop()" style="width:426px; height:280px" onm ouseOut="this.start()" scrollamount="2" scrolldelay="7" direction="up" align="">
<span style="FONT-SIZE: 9pt">
<center>
<?php
<span style="white-space:pre">	</span>while($p_row = $p_rst->fetch_row()){
?>
<a href=http://www.mamicode.com/"#" onClick="wopen=open('show_pub.php?id=<?php echo $p_row[0]; ?>','','height=200,width=1000,scollbars=no')"><?php echo $p_row[1]; ?>
>这个标签是HTML5新增的,还有center标签。那么在使用的时候就会出现下面画黄色波浪线的情况,我没有去管他。

在<a>这个超链接标签里,它设置了onclick这个属性,onclick这个属性后面跟的一定是js文件里面的函数,这个是打开一个自定义宽高的窗口。href=http://www.mamicode.com/"#"表示这个超链接不连接到其他页面,这里超链接的响应使用onclick来设定了。


到这里我们的首页基本就实现了。这是index.php 的完整代码:index.php提取码:iu09


PHP经典项目案例-(一)博客管理系统3