Home  >  Article  >  Backend Development  >  PHP经典项目案例-(1)博客管理系统3

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

WBOY
WBOYOriginal
2016-06-13 12:11:071142browse

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="%24_SERVER%5BPHP_SELF%5D" method="'post'" style="'margin:0'"> <select name="'month'" onchange="'this.form.submit();'">";         for($ttmpa=1;$ttmpamonth)==0){                 $select="selected style='background-color:#FAFDE2'";             }else{                 $select="";             }             echo "<option value="'$ttmpb'">".$this->_month[$ttmpb]."</option>";         }         echo " </select> <select name="'year'" onchange="'this.form.submit();'">";    //输出年份,前后10年         for($ctmpa=$this->year-10;$ctmpayear+10;$ctmpa++){             if($ctmpa>2050){                 break;             }             if($ctmpayear)==0){                 $select="selected style='background-color:#FAFDE2'";             }else{                 $select="";             }             echo "<option value="'$ctmpa'">$ctmpa</option>";         }         echo "</select>         </form>
<br>        <table border="0" align="center">";         for($Tmpa=0;$Tmpa<count>week);$Tmpa++){    //输出星期的标头             echo "<td>".$this->week[$Tmpa]."</td>";         }         for($tmpb=1;$tmpbmonth,$this->day,$this->year));$tmpb++){    //输出所有日期             if(strcmp($tmpb,$this->day)==0){  //获得当前日期,并采用特色颜色做为标记                 $flag=" bgcolor='#FF3366'";             }else{                 $flag=' bgcolor=#FAFDE2';             }             if($tmpb==1){                 echo "<tr>";                 for($tmpc=0;$tmpc";                 }            }             if(strcmp($this->getweek($this->year,$this->month,$tmpb),0)==0){ //如果是周日                echo "</tr>
<tr>
<td align="'center'">$tmpb</td>";             }else{                 echo "<td align="'center'">$tmpb</td>";             }         }        echo "</tr></count>
</table>
</div>";    }     //获得方法内指定的日期的星期数     function getweek($year,$month,$day){         $week=date("w",mktime(0,0,0,$month,$day,$year));     //获得星期         return $week;   //获得星期     }     function _env(){         if(isset($_POST["month"])){             $month=$_POST["month"];         }else{             $month=date("m"); //默认为本月         }        if(isset($_POST["year"])){             $year=$_POST["year"];         }else{             $year=date("Y");    //默认为本年         }        $this->setyear($year);        $this->setmonth($month);        $date=sprintf('%1d',date('d'));        $this->setday($date);    }}     $D=new calendar;     $D->OUT(); ?>  

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

 <!-- 日历显示 --> <tr> <span style="white-space:pre">	</span><td height="155" align="center" valign="top"><?php include &#39;cale.php&#39;;?></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="article.php?file_id=<?php%20echo%20%24info%5B'id'%5D;?>" target="_blank"><font size="2"><?php echo $i."、".substr($info[&#39;title&#39;],0,27);?></font></a>                </td>        </tr>        <?php $i=$i+1;                }        ?>        <tr>        	<td height="10" align="right"><a href="file_more.php"><img  src="images/more.gif"    style="max-width:90%"  style="max-width:90%" border="0" alt="PHP经典项目案例-(1)博客管理系统3" >   </a></td>        </tr>        </table>        </td>
</tr>
这里我去查询数据库的时候使用了自己的工具类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">	$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 = $row['file'];                    <span style="white-space:pre">		</span>}		?>		<tr>    		<span style="white-space:pre">	</span><td width="9" rowspan="2" align="center"> </td>    			<td width="147" align="center">        		<a href="image.php?recid=<?php%20echo%20%24info%5B'id'%5D;%20?>" target="_blank">        		<img  src="<?php%20echo%20%24data;?>"    style="max-width:90%"  style="max-width:90%" border="0" alt="PHP经典项目案例-(1)博客管理系统3" >        		</a>    			</td>    			<td width="10" rowspan="2" align="center"> </td>    		</tr>    		<tr>    			<td align="center">图片名称:<?php echo $info[&#39;tpmc&#39;];?>
</td>		</tr>		<?php }		?>		<tr>		<span style="white-space:pre">	</span><td colspan="3" height="10" align="right"><a href="pic_more.php"><img  src="images/more.gif"    style="max-width:90%"  style="max-width:90%" border="0" alt="PHP经典项目案例-(1)博客管理系统3" >   </a></td>		</tr>                </table>                </td>        </tr>        </table>        </td>
</tr>

同样使用了数据库查询。

4、公告区实现

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

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


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

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


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


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn