PHP仿博客园个人博客数据库与界面设计(4)_PHP教程
推荐:PHP session_start()问题解疑(详细介绍)本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 Warning: Cannot send session cookie - headers already sent Warning: Cannot send session cache limiter - headers already sent 分析及解决办法 这 一类问题,的原因是你在程序中使用PHP session
$pagination = new Pagination; 这个类是我们的分页类,我们传入一个 总的数量给它,然后它自己会算出总页数,每跳转一个页面,相当于刷新了一次,所以大家的做法就是,在构造器里 GET(获取)url上的page 的值,让我们知道是当前那一页了。同时我们重新生成了查询的语句,后面加上一条限制的语句,类似 limit $start(起始的id), $offset(长度); 原理就是从这个id起,往后给我10 条记录;我的设定就是 10 条,你也可以更灵活。
$cat = new Category;这个类后面会详细说,也是非常重要的分类model。这里我们就是简单获取 这个类型下的所有分类,显示在侧边栏,我已经完成了。有图有真相!
这样 我们的 $results 数组中就储存了我们页面所需的所有数据。 好的,来看看我们的模版,是怎么输出的。
复制代码 代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>
博客后台管理</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="assert/css/blog.css" />
</head>
<body id="Posts">
<table id="BodyTable" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td id="Header" colspan="2"><div id="SiteNav"></div>
<div id="BlogTitle">
Arist's Blog
</div>
<div id="Site Title">
<b><blockquote>Hinging there, everything will be fine.</blockquote></b>
</div>
</td>
</tr>
<tr>
<td>
<div id="LeftNavHeader">操作</div>
</td>
<td class="NavHeaderRow">
<ul id="TopNav">
<li><a href="post.php?action=IsPost">随笔</a></li>
<li><a href="article.php?action=IsArticle">文章</a></li>
<li><a href="diary.php?action=IsDiary">日记</a></li>
<li><a href="comment.php?action=IsComment">评论</a></li>
<li><a href="photo.php?action=IsPhoto">相片</a></li& gt;
</ul>
<div id="SubNav">
当前位置: <?php if( isset( $results['path'] )) echo $results['path']; ?>
</div>
</td>
</tr>
<tr>
<td class="NavLeftCell">
<div class="left_nav">
<ul id="LinksActions">
<li><a href="article.php?action=newArticle">» 添加新文章</a></li>
</ul>
</div>
<div id="CategoriesHeader" class="LeftNavHeader">
分类
</div>
<div class="left_nav">
<ul id="LinksCategories">
<li><a href="category.php?action=ListCat&type=article">[编辑分类]</a></li>
<li><a href="article.php?action=IsArticle">[所有分类]</a></li>
<li><a href="article.php?action=unCategory">[未分类]</a></li>
<?php
if( isset( $results['categories'] ) && ! empty( $results['categories'] ) ){
foreach( $results['categories'] as $category ){
echo <<<EOB
<li><a href="article.php?action=diffentCategoryArticle&catID={$category['category_id']}">{$category['name']}({$category['count_child_number']})</a></li>
EOB;
}
}
?>
</ul>
</div>
</td>
<td id="Body">
<div id="Main">
<div id="Editor_Messages">
<!-- 显示提示信息 -->
<?php
if( isset( $results['statusMessage'] )){echo $results['statusMessage'];}
if( isset( $results['errorMessage'] )){echo $results['errorMessage'];}
?>
</div>
<div id="Editor_Results">
<div id="Editor_Results_Header" class="CollapsibleHeader">
<span id="Editor_Results_headerTitle">文章(主要用于转载,发布原创博文要通过“随笔”)</span>
</div>
<div id="Editor_Results_Contents">
<?php
if( isset( $results['posts'] )){
echo <<<EOB
<table id="Listing" class="Listing" cellspacing="0" cellpadding="0" border="0" style='width:98%;'>
<tr style="text-align: center">
<th valign="bottom">
标题
</th>
<th width="40" style="text-align: center">
发布<br />
状态
</th>
<th valign="bottom" width="50" style="text-align: center">
评论
</th>
<th width="50" style="text-align: center">
页面<br />
浏览
</th>
<th valign="bottom" width="40" style="text-align: center">
操作
</th>
<th valign="bottom" width="40" style="text-align: center">
操作
</th>
</tr>
EOB;
foreach( $results['posts'] as $post ){
$time = date("Y-m-d H:i:s", $post['create_time']);
if( $post['status'] == "1" ){
$post['status'] = "发布";
} else {
$post['status'] = "<b>未发布</b>";
}
echo <<<EOB
<tr id="entry_{$post['post_id']}" class="Alt">
<td style="text-align: left">{$post['title']} ({$time})</td>
<td style="text-align: center">{$post['status']}</td>
<td style="text-align: center">{$post['view_count']}</td>
<td style="text-align: center">{$post['comment_count']}</td>
<td style="text-align: center"><a href="article.php?action=editArticle&postID={$post['post_id']}">编 辑</a></td>
<td style="text-align: center"><a href="JavaScript:if(confirm('从数据库中删除这篇文档?')==true) {window.location='article.php?action=delete&postID= {$post['post_id']}';}">删除</a></td>
</tr>
EOB;
}
echo "</table>";
if( isset( $pagination) ){$pagination->createLinks( ) ;}
} else {
echo "当前无内容!";
}
?>
</div>
</div>
<span id="currentPostId" style="display:none;"></span>
</div>
</td>
</tr>
</table>
<div id="blog_top_nav_block">
<div id="site_nav">
</div>
<div id="login_area">
<span id="span_userinfo"><b><?php echo $_SESSION['username']; ?> </b> <a href="?action=logout">logout</a></span>
</div>
<div class="clear"></div>
</div>
<table id="Footer" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td colspan="2">
<div>
© <?php echo date("Y", time( ) ); ?> Arist
</div>
</td>
</tr>
</table>
</body>
</html>
以上只是显示数据,人人都会啊。
我们怎么操作这些数据呢?
操作,就像是一种控制能力。 学生时代踢足球,我对球场有一种很强的控制能力,大学足球比赛拿了1次冠军,1次亚军,1次季军,大四没去,中学更是无数荣誉。
我的位置是中卫,在足球场上,这个位置,你得有统观全局的能力,也得有很强的个人能力,还有指挥能力;扯的远了,现在天天坐在电脑前,这些东西也早就没了,
就剩下些经验之谈。不过其中滋味,你也须也体验过。
我这个博客有个缺点,每次你对数据库进行一次读写操作,你得刷新啊!我知道这对服务器的负载很大,但是我觉得如果一个新技术你没有完全吃透,盲目运用,只会适得其反。
所以暂时我还是牺牲服务器的响应时间,内存消耗,来获得一种相对的稳定!
所以我对全局还不是很了解,还有很多未知地领域没有涉入,如深入ajax,深入php,c 。。。 不多说了。
好了,看看怎么对数据进行CRUD 吧!
DELETE 删除
先看这个指令 post.php?action=delete&postID=132
当我们确认要删除时,这里有个注意的地方,我们能先要对该文档所属的分类下的 count_child_number 这个字段进行 一个减 1 的操作。
为什么? 因为我也开始犯了个逻辑错误,删除后我才调用这个方法,还记得嘛!reduceChildNumber( ) 有趣地地方就是这里,让我受益匪浅!也让我调试了N久!
分享:浅析PHP的ASCII码转换类本篇文章是对PHP的ASCII码转换类进行了详细的分析介绍,需要的朋友参考下 复制代码 代码如下: class ascii { function decode($str) { preg_match_all( /(d{2,5})/, $str,$a); $a = $a[0]; foreach ($a as $dec) { if ($dec 128) { $utf .= chr($dec); } else if ($dec
- 相关链接:
- 教程说明:
PHP教程-PHP仿博客园个人博客数据库与界面设计(4)。