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='$ttmpb' $select>".$this->_month[$ttmpb]."</option>";
        }
        echo " </select> <select name='year' onchange='this.form.submit();'>";    //输出年份,前后10年
        for($ctmpa=$this->year-10;$ctmpa<$this->year+10;$ctmpa++){
            if($ctmpa>2050){
                break;
            }
            if($ctmpa<1980){
                continue;
            }
            if(strcmp($ctmpa,$this->year)==0){
                $select="selected style='background-color:#FAFDE2'";
            }else{
                $select="";
            }
            echo "<option value='$ctmpa' $select>$ctmpa</option>";
        }
        echo "</select>
        </form><br/>
        <table border=0 align=center>";
        for($Tmpa=0;$Tmpa<count($this->week);$Tmpa++){    //输出星期的标头
            echo "<td>".$this->week[$Tmpa]."</td>";
        }
        for($tmpb=1;$tmpb<=date("t",mktime(0,0,0,$this->month,$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<$fweek;$tmpc++){
                    echo "<td></td>";
                }
            }
            if(strcmp($this->getweek($this->year,$this->month,$tmpb),0)==0){ //如果是周日
                echo "<tr><td align='center' $flag>$tmpb</td>";
            }else{
                echo "<td align='center' $flag>$tmpb</td>";
            }
        }
        echo "</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 '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="article.php?file_id=<?php echo $info['id'];?>" target="_blank"><font size="2"><?php echo $i."、".substr($info['title'],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" width="27" height="9" border="0">   </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">	</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 = $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 echo $info['id']; ?>" target="_blank">
        		<img src="<?php echo $data;?>"  width="120" height="80" border="0">
        		</a>
    			</td>
    			<td width="10" rowspan="2"  align="center"> </td>
    		</tr>
    		<tr>
    			<td  align="center">图片名称:<?php echo $info['tpmc'];?></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" width="27" height="9" border="0">   </a></td>
		</tr>
                </table>
                </td>
        </tr>
        </table>
        </td>
</tr>

同样使用了数据库查询。

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 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">	</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
        }
?>
</center>
</span>
</marquee>

这个标签是HTML5新增的,还有center标签。那么在使用的时候就会出现下面画黄色波浪线的情况,我没有去管他。

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

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

时间: 2024-10-14 00:41:44

PHP经典项目案例-(一)博客管理系统3的相关文章

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

在基本学习了PHP的基础知识之后,自己开始尝试一些经典的项目案例.于是我借了一本关于PHP项目开发的书,然后找到了这个博客管理系统.(最经典的是留言板,但是我考虑了一下留言板,数据库设计稍微简单一点,所以我选择了这个)我去网上下载了源代码,但是之后发现源代码很多错误,还有一些数据库的知识用的是mysql库的,这样就算程序正确,运行时也会警告.因为mysql库的函数将被逐渐被替代.所以我用了五天的时间,在他的素材基础上,将所有的后台(也就是PHP代码块)重写,前端界面只是把它里面的错误改正使程序能

Hadoop集群(第9期)_MapReduce初级案例 - 虾皮 - 博客园

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}

在线博客管理系统

本毕业设计对博客系统的操持与开拓过程进行了阐发与描写.按照系统开拓的理论操纵步伐,文章从系统概述.系统阐发.系统分析和系统实现这四大章节对系统开拓过程进行别离叙说.系统概述中主要进行了课题背景.课题含意和近况阐发:系统阐发中主要搜罗了系统操持前的需要阐发.业务流程阐发.数据流程阐发和数据字典阐发:而系统分析则是对系统琐细结构.模块.数据库结构操持等详细的系统实现过程进行阐进行示,在系统操持章节中有详细的说明并配有表图阐明.文章还列举了关头的遵命模块实现代码.本文力图博客系统开发找到到一种切实可行

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

本篇实现发表博客. 八.发表博客 (1).界面实现file.php <tr>      <td colSpan=3 valign="baseline" style="BACKGROUND-IMAGE: url( images/bg.jpg); VERTICAL-ALIGN: middle; HEIGHT: 450px; TEXT-ALIGN: center">     <table width="100%" heig

iOS_CNBlog项目开发 (基于博客园api开发)

按照惯例, 先上效果图 前言 很巧, 做这个项目是因为刚好在逛博客园的时候看到一篇文章 博客园第三方客户端-i博客园正式发布App Store, 这里就帮忙贴下链接啦, 毕竟我是由此而想说做这个项目的. 然而更巧的是, 和那篇文章的作者一样, 我也是刚毕业要找实习的人了(/(ㄒoㄒ)/~~), 开发容易找工不易, 哎, 做个项目练练手吧. 然后, 整个项目做下来大概做了半个月吧, 今天算是做出1.0版本啦, 已经贴上github(https://github.com/samAroundGitHu

git bash管理项目/github个人博客

1.下载安装:http://jingyan.baidu.com/article/7f766dafba84f04101e1d0b0.html 2.验证公钥:https://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E7%94%9F%E6%88%90-SSH-%E5%85%AC%E9%92%A5 http://blog.csdn.net/hustpzb/article/details/82304

大数据技术之_05_Hadoop学习_04_MapReduce_Hadoop企业优化(重中之重)+HDFS小文件优化方法+MapReduce扩展案例+倒排索引案例(多job串联)+TopN案例+找博客共同粉丝案例+常见错误及解决方案

第6章 Hadoop企业优化(重中之重)6.1 MapReduce 跑的慢的原因6.2 MapReduce优化方法6.2.1 数据输入6.2.2 Map阶段6.2.3 Reduce阶段6.2.4 I/O传输6.2.5 数据倾斜问题6.2.6 常用的调优参数6.3 HDFS小文件优化方法6.3.1 HDFS小文件弊端6.3.2 HDFS小文件解决方案第7章 MapReduce扩展案例7.1 倒排索引案例(多job串联)7.2 TopN案例7.3 找博客共同粉丝案例第8章 常见错误及解决方案 第6章

emblog个人博客管理系统后台升级编辑kindeditor到最新版本 详细步骤

emblog一直用的简约版的kindeditor,最近下载了 第一步官方下载下载kindeditor,也可以用我整理好的直接下载覆盖就行 http://www.minxtblog.com/content/uploadfile/file/20160912/20160912144408_95359.zip 第二修改一下:admin/views/write.php 将: loadEditor('content'); loadEditor('excerpt'); 替换成 var KE,KEE; Kind

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

本篇使用Ajax实现页面无刷新验证用户名是否存在. 七.注册页面实现 1.注册页面设计 register.php部分代码: <tr> <!-- 注册表 --> <td colSpan=3 valign="baseline" style="BACKGROUND-IMAGE: url( images/bg.jpg); VERTICAL-ALIGN: middle; HEIGHT: 450px; TEXT-ALIGN: center">