实验以实例的形式教大家学习使用PHP,MYSQL与相关的APACHE服务器.
必需的软件包括:
appserv.exe(apmphp,mysql,apache首个字母组合,所以此软件包含了此三个软件.) Dreamweaver (用于网页制作,习惯用frontpage的也可以用它).

此教程主要教大家用php+mysql, 教程以一个简单的新闻系统为例,这其中涉及到了数据的添加,更新,查询,删除.数据库的操作也就主要是这四种功能,学会了做个简单的新闻系统,如果有兴趣的平时再尝试着做其它系统功能,那么慢慢就会熟练的了.在这里大家只要按此教程步骤一步一步跟着学跟着做就基本学会的了.
此实验要求对PHP,HTML有一些基本的了解,如语法等.因此建议大家先借些PHP, html的书看看.,在实验过程中主要是给出文件代码,并在代码中以注释的形式给大家讲解.大家认真看代码与注释,最好是把代码复到Dreamweaver中看,并把文件保存在服务器中测试.
:服务器软件配置说明.
必需软件:appserv (php+mysql+apache),此类软件有很多(greenamp,现在叫kiss,),这里为方便就选用这个了,如果大家对PHP有兴趣的建议大家学学(LMAP配置:linux+mysql+apache+php),下载appserv安装后如果使用默认路径的话[如你解压到D盘中安装,那么appserv为该软件目录,该目录下的www为网站服务器,把你做的网站代码放到里面就行了.把开地址:http://localhost http://127.0.0.1/.local目录下的mysql目录里的data目录为网站数据库保存地址.Dreamweaver. 用于网页制作.
:实验过程.
2.1phpmyadmin创建数据库.:
大家进入phpmyadmin (http://127.0.0.1/phpmyadmin/),会看到有"创建一个新的数据库"这一功能,如下图所示:

在我们的PHP,MYSQL学习中会以一个简单的新闻系统为例,所以我们首先要创建一个保存新闻相关信息的数据库, 首先创建一个名为"TEST"的数据库.点击创建按钮后会进入一个页面,要求为该数据库创建一个表,这里我们就先建"NEWS"这个表,字段数为"4",点击"确定"进入表的字段参数设置页面,这里第一个字段名为"id",其类型选"bigint",长度值填一数字,20,属性就不用填了,NULL就选"NOT_NULL"行了,意思是在添加数据时这个字段为必填,如果没填则会出错;默认这里也留空行了,额外就选"auto_increment"意思是该字段为自增长型,在添加一项数据时不用填这个字段它都会自动填入一数字.接着在旁边的主键那里选择上它,让这个id字段作为主键,一般数据表都会创建"id"字段作业主键以方便以后的操作.
Id字段设置如下两图所示:

 接着设置第二个字段,字段名为"title",作业新闻的标题,类型就选"VARCHAR",长度写一数值,意思是标题不能输入字的个数超过这个数值,但这个数据的最大值为255,在这我们就填200.其它不用理了; 接着设置第三个字段了,字段名为"add_time",用来存放新闻添加的时间,类型先"VARCHAR",为什么不选"DATE"作业类型呢?因为选"DATE"类型号在以后的添加等操作中会很麻烦,而用VARCHAR类型可以实现"DATE"类型的功能而且操作起来很简单,长度100行了.第四个字段名为"content",用来存放新闻的主要内容,类型选"TEXT",就是文本内型,这种类型可以存放较多的字,这种类型的长度是不用填的;到这里所有字段都设置好了,"保存"就可以了.
2.2phpmyadmin操作数据库的其它一些说明
   大家在phpmyadmin的左边先选择要操作的数据库就可以对该数据库进行相关的操作.:在下拉选项中选择我们已经建好的"TEST"数据库.在左边就会出现该数据库的所有表,点击你要操作的表名就可以对该表进行操作.:点击"NEWS"这个表.那么右边就会显示文表的相关信息,并有一些操作功能.如要在该表中添加一个新的字段可以点击上面的"SQL"按钮,那么就会出现SQL命令输入框,如我们要在"NEWS"表中的"title"字段之后添加一个名为"reporter",类型为"varchar" ,长度为100的字段可以输入这个命令:alter table news add reporter varchar(100) after title; 点击执行就行了.
2.3 PHP.连接MYSQL数据库的代码
<?php
$hostname = "localhost"; //主机名,可以用IP代替
$database = "test"; //数据库名
$username = "root"; //数据库用户名
$password = "sa"; //数据库密码
$conn = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error() , E_USER_ERROR);
mysql_select_db($database, $conn);
$db = @mysql_select_db($database, $conn) or die(mysql_error());
?>

以后任何一个涉及到数据库操作的页面都要使用到这些代码,大家可以把这些代码单独存为一个文件,如建一个conn.php的文件保存这些代码,那么在以后要用到这些代码时只要include这个页面就可以了.add.php这个页面要要添加数据入数据库,那么在add.phpinclude "conn.php"; 就可以了.
2.4.1
这里要有一定的html知识,建议大家花半天时间到图书馆找几本html的书看看,先作初步的了解!以后用多了就熟的了.
2.4.2创建add_news.php文件,让用户输入新闻信息
Dreamweaver 新建一个add_news.php文件,此页面作为用户输入欲添加的新闻内容.
具体步骤如下:
(1)打开Dreamweaver新一个php文件.把这个文件以:add_news.php为名保存在服务器上.
.如我的easyapm安装在D,则保存在: D:\usr\www\tech ,这里的tech为新建的一目录用于保存该站的.打开Dreamweaver新建时要选动态页才能选文件类型为php..创建并以add_news.php保存好后就开始制作界面.
大家可以选择设计方式:如下图:
 

然后选菜单中的插入按钮插入表格

先插入一表格,插入后可以在下面填定表格属性.

 

.在表格中输入提示用户输入新闻信息的内容请填写要添加新闻的信息
接着再同理插入另一个表格用于给用户输入新闻标题与内容.在插入表格后,在该表格中插入文本字段或者文本区域, 文本字段或者文本区域的插入与表格插入差不多,也是选菜单上面的插入按钮可以选择插入表单的/,插入的文本字段或者文本区域的方式选post,动作填save_news.php,意思是表单的内容会传到save_news.php这个页面处理.
接着大家可以在表单里嵌套表格(刚学这样会易理解点,以后大家用熟了就应该尽量少用嵌套表格方式).
如这里就在表单里插入一个两行两列的表格,以输入新闻标题与内容,如下图所示:
接着在新闻标题的右边那个表格上插入一输入框给用户输入新闻标题.
选在那个位置.”插入”—“表单”—“文本字段,”,如下图:

 

按确定就行了.
接着在底部设置其属性,文本域就为”title”,就是该输入框的名称.save_news.php中就要以这个名称来接收传过来的新闻标题了,
接着在新闻内容的右边格插入一文本输入区域给用户输入新闻内容.
因为内容会较标题多,所以要插入文本区域而非文本字段”.属性中文本区域的名为”content”.
,最后,换一行输入一提交按钮就可以了.按钮的插入与输入框插入一样,也在菜单中的插入表单中可选.最后看到的效果图如下:

 

到这里新闻提交页面就做好了,其完整代码如下所示,其中作了一些小小的改动,如提交按钮值等,这些不会影响功能.至于网页的界面美工就不是学一天半天就可以做得很好看的,这需要一定的经验积累,而且单用设计的方式设计网页界面也不能做出很好看的页面,必需要较熟悉html代码,以及借鉴网上一些的优秀交果代码.
add_news.php完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>添加新闻输入页面</title>
<style>
form{
padding:0px;
margin:0px;
}
</style>
</head>
<body>
<table width="70%" height="30" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center">请填写要添加新闻的信息</td>
</tr>
</table>
<form action="save_news.php" method="post">
<!--这里是一个表单,意思是以post方式把下面输入的数据传到save_news.php页面. ,表单以</form>结束-->
<table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="30%" align="right">新闻标题</td>
<td width="70%" align="left"><input type="text" name="title" size="30"/></td>
</tr>
<tr>
<td align="right">新闻内容</td>
<td align="left"><textarea name="content" cols="30" rows="5"></textarea></td>
</tr>
</table>
<table width="70%" height="30" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><input type="submit" name="submit1" value="确定添加"/></td>
</tr>
</table>
</form>
</body>
</html>
2.4.3创建save_news.php文件,接收用户输入新闻信息并添加进数据库
save_news.php文件代码如下所示:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<? include "conn.php" ?> <? //调用conn.php文件,用于连接到数据库 ?>
<?
//下面先接收从add_news.php传过来的新闻标题与新闻内容.
//PHP变量是以$开头的,$a,$b 变量,C,C++一样都是以";"分号结果一句子;注释也与C,C++一样.
// 因为add_news.php表单定义的传输方式为POST所以这里要对应用POST接收,如果定义为GET则要用GET接收.
$title=$_POST[title]; //这果申请一$title变量用于保存从add_news.php传过来的新闻标题title.
$content=$_POST[content]; //同上,保存新闻内容值.
//下面用一if语句检测系统的香港时区的时间,我们用的PHP一般以香港时间为准的,
if(function_exists('date_default_timezone_set')) {
date_default_timezone_set('Hongkong');//该函数为PHP5.1内置.
}
$add_time=date("Y-m-d");
//这句话把获取到的系统当前时间赋给变量$add_time
$sql = "INSERT INTO news (title,content,add_time) VALUES ('$title','$content','$add_time')";
$result = @mysql_query($sql,$conn) or die(mysql_error()); //如果添加成功,返回真给$result ,否则为false.
if($result)
{ echo "添加新闻成功,<a href='add_news.php'>返回继续</a>";
}
else
{
echo "添加新闻失败,<a href='add_news.php'>请返回</a>";
}
?>
// 在此,通过以上两个页面就完成了数据的添加.
2.5.1普通单条数据查询
Dreamweaver 新建一个read.php文件,在此页面写一条简单查询单条数据的语句.
read.php 文件代码如下所示:
<? include "conn.php" ?>  <? // 注释:调用conn.php文件,用于连接到数据库 ?>
<?
//下面为查询id=1的新闻数据.
$query = "select * from news where id=1";
//查询条件id类型为int 型所以直接写1就行了,如果是字符或字符串型则用"'",单引号引起
$res = mysql_query($query, $conn) or die(mysql_error());
$row = mysql_num_rows($res); //如果查询成功这里返回真否则为假
if($row)
{
$dbrow=mysql_fetch_array($res);
$id=$dbrow['id'];    //把数据库里的相应数据赋给变量
$title=$dbrow['title'];
$content=$dbrow['content'];
$add_time=$dbrow['add_time'];
echo $id;          //PHP的输出用 echo ,这里输出ID.
echo " ";
echo $title."<br>";  //<br>为换行
echo $add_time;
echo "<br>";
}
else
{
echo "无相关数据";
}
?>
2.5.2结果不止一条数据的查询写法
Dreamweaver 新建一个read_2.php文件作测试,在此页面写一条查询条件,但查出的数据结果可能不唯一.
read_2.php 文件代码如下所示:调用conn.php文件,用于连接到数据库 ?>
<?
echo "下面为查询标题中有信工学院四个字的的新闻数据.<br>";
$query = "select * from news where title like '%信工学院%'"; //这样可能有很多标题包含有这四个字的新闻
都会显示出来. 大家可以添加多几条新闻试试.还可以用OR AND 限制更多查询条件.
$res = mysql_query($query, $conn) or die(mysql_error());
$row = mysql_num_rows($res); //如果查询成功这里返回真否则为假
if($row)
{
for($i=0;$i<$row;$i++)    //这里用一个FOR 语句查询显示多条结果
{
$dbrow=mysql_fetch_array($res);
$id=$dbrow['id'];
$title=$dbrow['title'];
$content=$dbrow['content'];
$add_time=$dbrow['add_time'];
$content = str_replace("\r", "<br>", $content); //用替换函数把新闻内容中的空格与换行符换回html语法输出.
$content= str_replace(" ", "&nbsp; ", $content);
echo $id; //PHP的输出用 echo
echo " ";
echo $title."<br>"; //<br>为换行
echo $add_time;
echo "<br>";
echo $content;
echo "<br>";
echo "--------------------------------";
echo "<br>";
}
}
else
{
echo "无相关数据";
}
?>

<? include "conn.php" ?> <? //
 
// 到此就结束了数据查询的学习.
 2.6.1 .第一步 news.php文件,显示所有新闻让你选择修改
 一般的数据更新都是先显示出所有的数据,然后选中一条或多条数据更新的.
所以这里我们也先显示出所有的新闻标题,再选择性地更新.
新建一个名为:news.php的文件显示所有新闻标题,代码与read_2.php差不多,只是改
了查询条件与显示方式.其具体代码如下所示:
news.php

<? include "conn.php" ?> <? //调用conn.php文件,用于连接到数据库 ?>
<?
echo "下面所有新闻数据.<br>";
$query = "select * from news ";
$res = mysql_query($query, $conn) or die(mysql_error());
$row = mysql_num_rows($res); //如果查询成功这里返回真否则为假
if($row)
{
for($i=0;$i<$row;$i++) //这里用一个FOR 语句查询显示多条结果
{
$dbrow=mysql_fetch_array($res);
$id=$dbrow['id'];
$title=$dbrow['title'];
//$content=$dbrow['content']; 内容不用显示了.这里把它注释掉
$add_time=$dbrow['add_time'];
//$content = str_replace("\r", "<br>", $content); //用替换函数据新闻内容中的空格与换行符换回html语法输出.
//$content= str_replace(" ", " &nbsp;", $content);
echo $id; //PHP的输出用 echo
echo " ";
echo "<a href='edit_news.php?id=$id'>$title.</a>"; //这里意思是以GET方式把id这个变量传到
edit_news.php这个页面.
echo "<br>";
}
}
else
{
echo "无相关数据";
}
?>
//////////////////////////////////////////////////////////////////////////end news.php/////////////////////////////
2.6.2 .第二步 edit_news.php文件,显示具体改的那条新闻的信息并输入改修内容
建立一个名为edit_news.phpPHP文件.这个文件用于接收从news.php传过来的id,id值确定要修改的新闻是那一条.其代码如下所示

<? include "conn.php" ?> <? //调用conn.php文件,用于连接到数据库 ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1
-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>修改新闻</title>
<style>
form{
padding:0px;
margin:0px;
}
</style>
</head>
<body>
<?
$id=$_GET[id]; //先接收从news.php传过来的ID值以确定要修改的新闻
//接着查出该新闻有关数据.
$query = "select * from news where id=$id";
$res = mysql_query($query, $conn) or die(mysql_error());
$row = mysql_num_rows($res); //如果查询成功这里返回真否则为假
$dbrow=mysql_fetch_array($res);
$id=$dbrow['id'];
$title=$dbrow['title'];
$content=$dbrow['content'];
$add_time=$dbrow['add_time'];
?>
<table width="70%" height="30" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center">请填写要修改新闻的信息</td>
</tr>
</table>
<form action="save_edit_news.php" method="post"> <!---把内容传到save_edit_news.php 保存-->
<table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="30%" align="right">新闻标题</td>
<td width="70%" align="left"><input type="text" name="title" size="30" value="<? echo $title;
?>"/></td>
</tr>
<tr>
<td align="right">新闻内容</td>
<td align="left"><textarea name="content" cols="30" rows="5"><? echo $content; ?
></textarea></td>
</tr>
</table>
<table width="70%" height="30" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center"> <input type="hidden" name="id" value="<? echo $id; ?>" /> <!----这里很重要,以隐藏方式把ID值也传到save_edit_news.php,以确定更新的具体是哪条新闻--->
<input type="submit" name="submit1" value="确定修改"/></td>
</tr>
</table>
</form>
</body>
</html>
2.6.3第三步 save_edit_news.php文件,用于把修改的内容更新到数据库
建立一个名为save_edit_news.phpPHP文件.这个文件接收从edit_news.php传过来的数据,并把它们更新到相应的数据库中.其代码如下所示

<? include "conn.php" ?> <? //调用conn.php文件,用于连接到数据库 ?>
<?
//先接收传过来的数据.
$id=$_POST[id];
$title=$_POST[title];
$content=$_POST[content];
$query = "Update news set title='$title',content='$content' where id=$id";
$res = mysql_query($query, $conn) or die(mysql_error());
//echo "修改成功";
if($res)
{
?>
<script language=javascript>window.alert('修改成功,请返回');history.back(1);</script> <?
}
else
{
?>
<script language=javascript>window.alert('修改失败,请返回');history.back(1);</script>
<?
}
?>
//////////////////////////////////////更新数据的教程到此结束////////////////////////////////////////////////
2.7.1第一步 news.php文件基础上修改,显示所有新闻让你选择删除
一般的数据更新都是先显示出所有的数据,然后选中一条或多条数据更新的.
所以这里我们也先显示出所有的新闻标题,再选择性地更新.
新建一个名为:news.php的文件显示所有新闻标题,代码与read_2.php差不多,只是改
了查询条件与显示方式.其具体代码如下所示:
news.php

<? include "conn.php" ?> <? //调用conn.php文件,用于连接到数据库 ?>
<?
echo "下面所有新闻数据.<br>";
$query = "select * from news ";
$res = mysql_query($query, $conn) or die(mysql_error());
$row = mysql_num_rows($res); //如果查询成功这里返回真否则为假
if($row)
{
for($i=0;$i<$row;$i++) //这里用一个FOR 语句查询显示多条结果
{
$dbrow=mysql_fetch_array($res);
$id=$dbrow['id'];
$title=$dbrow['title'];
//$content=$dbrow['content']; 内容不用显示了.
$add_time=$dbrow['add_time'];
//$content = str_replace("\r", "<br>", $content); //用替换函数据新闻内容中的空格与换行符换回html语法输出.
//$content= str_replace(" ", " ", $content);
echo $id; //PHP的输出用 echo
echo " ";
echo "$title"; echo " "; echo "<a href='del_news.php?id=$id'><font color='red'>删除</font></a>";
//这里选择性删除,id值传到del_news.php,以确定具体是删那一条数据.
echo "<br />"; }
}
else
{
echo "无相关数据";
}
?>
2.7.2第二步 del_news.php文件,用于操作删除数据
建立一个名为del_news.phpPHP文件.这文件接收从news.php传过来的id,再把数据库中id等于这个传过来的id值的数据删掉.其代码如下所示

<? Include "conn.php" ?>
<?
$id=$_GET[id];
$sql = "delete from news where id=$id";
$result1 = @mysql_query($sql,$conn) or die(mysql_error());
if($result1)
{
?>
<script language=javascript>window.alert('成功删除,请返回');history.back(1);</script> <?
} //result1==true
?>
 
//////////////////////////////////////end code ////////////////////////////////////////////
总结
按上面的步骤认真学习就基本会用PHP MYSQL做动态网页了.至于页面效果要做得好看就要平时多积累! 有什么问题欢迎到学习交流区互相学习交流

文件下载:http://lyncmaster.blog.51cto.com/p_w_upload/201101/2635726_1294312905.doc