1.MySQL数据库编程的步骤
第一步:连接MySQL服务器
$link = mysql_connect($db_host,$db_user,$db_pwd);
返回值:连接成功返回资源标识符(转成布尔值true),连接失败返回false.
第二步:选择当前数据库
mysql_select_db($db_name,$link);
返回值:布尔值
第三步:设置返回数据的字符集
mysql_query(“set names utf8”);
第四步:执行SQL语句
增加:INSERT INTO table_name(title,author,addate) VALUES(‘新闻标题’,’admin’,’2014-06-11’)
删除:DELETE FROM table_name WHERE id=100
修改:UPDATE table_name SET title=”新的标题”,author=”zhangsan” WHERE id=100
查询:SELECT * FROM table_name WHERE id<100 ORDER BY id DESC LIMIT 0,10
$result = mysql_query($sql);
返回值:只有SELECT语句会返回资源标识符(结果集),其它的返回真、假值。
第五步:针对SELECT语句
$arr = mysql_fetch_row($result); //返回枚举数组,每次只取一个行记录
$arr = mysql_fetch_array($result); //返回混合数组
$arr = mysql_fetch_assoc($result); //返回关联数组
2.新闻类别模块
(1)新闻类型的数据表:007_class_news
id:新闻类别的id号
classname:类型名称
borderby:排序字段
(2)增加一个新闻类别
先有表单,单击“提交按钮”提交表单;
表单数据发往PHP程序进行处理;
处理完后,将表单数据写进数据库。
007_cla
(3)读取所有的记录
cla
关键代码:SELECT * FROM 007_class_news ORDER BY orderby ASC,id DESC
如果记录为空,则输出“该模块没有记录,请你先添加”
如果记录不空,则输出所有的类别。
(4)删除一条记录
cla
关键的代码:DELETE FROM 007_class_news WHERE id=100
获取传递过来的id值,并进行判断。
如果id不存在,则跳到错误页面;
如果id存在,则执行删除SQL语句,再跳到成功页面
(5)修改一条记录
cla
关键的代码:UPDATE 007_class_news SET classname=’$classname’,orderby=$orderby WHERE id=100
先读取要修改记录内容,并写入到表单中
进行修改,提交表单。
更新数据库
3.新闻模块
新闻类别表(007_class_news)和新闻表(007_news)的关系
007_news数据表的结构
cat:新闻的类别ID,对应于007_class_news中的ID值。
title:新闻的标题
author:新闻的发布人
source:文章来源
keywords:这条新闻的关键字,主要用于网站优化;
descrition:新闻的简介,主要用于网站优化;
orderby:新闻的排序,如果后面的某条新闻,想排到前面时间,可以把orderby的值改小一点;
content:新闻的内容,图文混排。需要安装FCKEditor在线编辑器,kindeditor是国内的;
hits:访问量,单击率
addate:新闻的发布时间,获取的是time()的值;
kindeditor在线编辑器
引入kindeditor在线编辑器,kindeditor是用纯JS开发的,和Word很像。
Kindeditor在网上都可以随时下载到。
Kindeditor文件夹的目录:adminjseditor
Kindeditor的首页文件:adminj
/*********************************************************
<script charset="utf-8" src="js/editor;></script>
<script charset="utf-8" src="js/editor/lang;></script>
<script>
//加入在线编辑器
var editor;
KindEdi(function(K) {
editor = K.create('textarea[name="content"]', {
allowFileManager : true
});
});
</script>
<textarea id="content" name="content" style="width:100%;height:300px;visibility:hidden;"></textarea>
****************************************************************
以上代码实现,将<textarea>标记替换成KindEditor在线编辑器。
读取新闻类型的数据
$sql = “SELECT * FROM {$db_prefix}class_news ORDER BY orderby ASC”;
<select name="cat">
<?php
//读取新闻类别表的数据:007_class_news
$sql = "SELECT * FROM {$db_prefix}class_news ORDER BY orderby ASC";
$result = mysql_query($sql);
while($row=mysql_fetch_assoc($result))
{
echo "<option value='".$row["id"]."'>".$row["classname"]."</option>n";
}
?>
</select>
新闻分页
分页模块:可以会涉及到以下几个变量
pagesize:每页显示的数据;
page:当前页,一般是通过地址栏传递过来的参数;http://localhost/admin
records:符合条件的总记录数,通过“SELECT * FROM table_name WHERE id<500”
pages:总页数;总记录数/每页显示的大小 $pages = ceil($records/$pagesize)
startrow:开始行号,每页的开始行号都不一样,计算公式:$startrow = ($page-1)*$pagesize
分页的SQL语句:SELECT * FROM 007_news LIMIT $startrow,$pagesize
4.网站前台新闻模块
Index.php 网站前台首页,输出前8条记录
News.php 新闻列表页
New 新闻详细内容页
网站前台应该是三层结构:网站首页——模块列表页——详经内容页