FavoriteLoading
0

我的PHP学习第二十三天之MySQL基础篇

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);   //返回关联数组

新闻类别模块

(1)新闻类型的数据表:007_class_news

image001

id:新闻类别的id号

classname:类型名称

borderby:排序字段

2)增加一个新闻类别

先有表单,单击“提交按钮”提交表单;

表单数据发往PHP程序进行处理;

处理完后,将表单数据写进数据库。

007_class_news.php

 

3)读取所有的记录

class_news_manage.php

关键代码:SELECT * FROM 007_class_news ORDER BY orderby ASC,id DESC

 

如果记录为空,则输出“该模块没有记录,请你先添加”

如果记录不空,则输出所有的类别。

 

4)删除一条记录

class_news_del.php

关键的代码:DELETE FROM 007_class_news WHERE id=100

 

获取传递过来的id值,并进行判断。

如果id不存在,则跳到错误页面;

如果id存在,则执行删除SQL语句,再跳到成功页面

 

5)修改一条记录

class_news_edit.php

关键的代码:UPDATE 007_class_news SET classname=’$classname’,orderby=$orderby WHERE id=100

 

先读取要修改记录内容,并写入到表单中

进行修改,提交表单。

更新数据库

新闻模块

新闻类别表(007_class_news)和新闻表(007_news)的关系

image003

007_news数据表的结构

image005

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的首页文件:adminjskindeditor-min.js

 

/*********************************************************

<script charset="utf-8" src="js/editor/kindeditor-min.js"></script>

<script charset="utf-8" src="js/editor/lang/zh_CN.js"></script>

<script>

//加入在线编辑器

var editor;

KindEditor.ready(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>

 

新闻分页

image007

分页模块:可以会涉及到以下几个变量

pagesize:每页显示的数据;

page:当前页,一般是通过地址栏传递过来的参数;http://localhost/admin/news_manage.php?page=3

records:符合条件的总记录数,通过“SELECT * FROM table_name WHERE id<500”

pages:总页数;总记录数/每页显示的大小   $pages = ceil($records/$pagesize)

startrow:开始行号,每页的开始行号都不一样,计算公式:$startrow = ($page-1)*$pagesize

image009

分页的SQL语句:SELECT * FROM 007_news LIMIT $startrow,$pagesize

网站前台新闻模块

Index.php  网站前台首页,输出前8条记录

News.php  新闻列表页

Newsdetail.php  新闻详细内容页

 

网站前台应该是三层结构:网站首页——模块列表页——详经内容页

欢迎分享本文,转载请保留出处!—重蔚自留地 站长邮箱:951076433@qq.com