今晚坐在自习室里,敲了一些代码,感觉不错。这是我初学PHP+MySQL时经常练习的一个模块。拿出来和大家分享,特别是PHP初学者。我想必备的应该是熟悉HTML, CSS ,Javascript以及SQL语句 的基本知识。好了,废话不多说,开始吧。
一个极其简单的CMS的技术解析:
此CMS的功能:能够查看,增加记录。 简单吧
首先,数据库中表的设计是 四个字段 id,title,content,time_created其中id自增(AUTO_INCREASMENT),主键(primary key),int类型;title varchar类型 长度随便设;content varchar类型 长度随便设 ;time_created datetime类型 。
在Wampserver中www目录下建立个cms文件夹,然后在此文件夹内建立四个空白页,分别命名为conn.php index.php control.php和 deal.php 。
A、conn.php的代码如下
<?php $dblink = mysql_pconnect("localhost","wangdongya","wdy123456"); mysql_select_db("news",$dblink); mysql_query("set names utf8"); ?>第一句:连接本机上的数据库 后面两个参数是数据库用户名和密码(在数据库管理页面中设置的哦全部权限赋予)
第二句:选择要的连接的数据库
第三局:统一字符编码
B、index.php的代码如下
<?php include("conn.php"); ?> <html> <head> <title>Show Page</title> </head> <body> <?php $SQL = mysql_query("select id,title,content from news order by id desc "); while($row = mysql_fetch_array($SQL)){ $id = $row["id"]; $title = $row["title"]; $content = $row["content"]; echo "$title"; echo "<br>"; echo "$content"; echo"<hr>"; } ?> <a href="control.php">管理</a> </body> </html>首先引入数据库连接信息,然后用一个select语句逆序取出表中每的每条记录。这里我想详细说下mysql_query()函数和mysql_fetch_array()函数,mysql_query()函数仅仅对select,show,explain,describe语句返回一个资源标识符,如果有查询不正确,则返回false,对于其他类型的SQL语句,mysql_query()函数在执行成功时返回true,出错时返回false。也即非false的返回值意味着查询合法且能被服务器执行。 本例中执行了select语句,返回值是一个资源集,在PHP中直接输出资源集是无用的,输出的将是一个资源标识符,要操作这个资源集则需要用到mysql_fetch_array()函数,此函数没执行一次都会从资源集中取出一条记录放入一个数组中,并且内部数据指针自动指向下一条数据。要取出所有的数据就需要借助于while循环,然后输出每条数组中的元素即可。此页面的功能用于展示记录。
C、control.php的代码如下
<?php
include ("conn.php");
?>
<html>
<head>
<title>Control Page</title>
</head>
<body>
<form action="deal.php" method="post">
<table border="0" width="500">
<tr>
<td width="100" align="right">新闻标题:</td>
<td><input type="text" name="title" value=""></td>
</tr>
<tr>
<td width="100" align="right">新闻内容:</td>
<td><input type="text" name="content" value=""></td>
</tr>
<tr>
<td align="center"><input type="submit" name="post" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
这个控制页面用到了table布局,虽然有违时代精神,但不乏是一种简单有效的布局方法。此页面的作用即是收集用户填写的表单内容,并提交给deal.php 注意form标签的那两个属性值 action提交给deal.php做处理,通过method=post方法。此页面用于收集用户在form表单中填写的文本信息并提交给deal.php。D、deal.php的代码如下:
<?php
include("conn.php");
?>
<html>
<head>
<title>Deal Page</title>
</head>
<body>
<?php
if(!empty($_POST['post'])){
//$sql = "insert into news set 'title' ='".$_POST['title']."' , 'content' = '".$_POST['content']."'; ";
$title =$_POST['title'];
$content =$_POST['content'];
$sql = "insert into news (title,content) values ('$title','$content') ";
$result = mysql_query($sql);
if($result){
echo "<script type='text/javascript'>alert('suucceed!');location.href='index.php'</script>";
}
else{
echo "<script type='text/javascript'>alert('failed in the sql sentence');location.href='index.php'</script>";
}
}
else{
echo "<script type='text/javascript'>alert('failed in receiving the data');location.href='index.php'</script>";
}
?>
</body>
</html>
说一下HTTP数组$_POST 是通过HTTP POST方法传递的变量组成的数组,也是自动全局变量,在所有的脚本中都生效,用来向服务器上传递数据,$_POST是讲表单中的数据放在form的数据体中,按照变量和值对应的方式,传递到action所指向的URL。这个处理页面 把收集过来的数据通过SQL语句的形式打入到数据库中,并用弹框提醒用户并返回到展示页面。
至此,一个简单的CMS就弄好了。各种PHP图书中介绍的经典留言板模型也是这样的。我想通过一点点的完善,功能的一点点增加,比如增加一个登录管理功能,我们的建站技术就会不知不觉地提高 了。