首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » [站长新作]PHP4与MYSQL编程教学程序(一)  


  作者:一起php
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

  nqp@nqp.me
  4304410
  www.nqp.me

 

 发表:2004-04-06 18:34:51 阅读 9818 次 回复 53 次 得分88  |   字号 字色
[站长新作]PHP4与MYSQL编程教学程序(一)
PHP4与MYSQL编程教学程序(一)

   很多朋友刚开始学习PHP就跃跃欲试,很想学习数据库编程。好的,今天抽出时间,赶紧写一点入门的教程————特别声明,这篇文章只适合那些刚刚开始学习php,还没有成功的连接过一次数据库的朋友阅读!高手就不要进来看了,免得倒胃口哦!!

   好,时间不多,马上开始!

   我们假设你已经配置好了PHP和Mysql,并且,对php的基本语法已经有了一定了解(比如,我不会给"<?"作注释,你不要问这个是什么意思).如果你还对PHP一无所知,我建议您阅读我昨天写的几篇基础文章。

   在开始编写第一个连接到mysql的php程序之前,我们先假设你的mysql有这么一个数据库 linktest,这里面有一个表userinfo,结构如下:
 
---------------------------------
id |  username | password | age  |
----------------------------------
1  |  张三 | 12221    | 19   |
----------------------------------
2  |  李四 |  3213isda| 32   |
----------------------------------
....................

现在,我们就要动手写一个php程序,把数据表中的内容显示在网页上,并且在一个表格中显示。
好的。开始了。
新建一个文件,如  linkdb.php
代码如下(注释够详细了)
--------------------------------------------------------------------------
<?php

$id=mysql_connect("localhost","root","123");

//首先连接到数据库服务器,并且返回一个Id
//(这个Id表示一个连接号,就像你的身份证号一样,是一个人的唯一标示,用来和其他连接作区别)
//mysql_connect()是php提供的连接到mysql服务器的函数,有三个参数:服务器地址,用户名,密码。
//服务器地址如果不是本机,则填写ip地址,比如:202.111.131.1,用户名密码就是你的帐号

mysql_select_db("linktest",$id);

//注意,这一行直接调用了一个函数,没有返回值。mysql_select_db()函数用来选择数据库,也就是说,你的这个连接要是用那个数据库
//第二个参数“$id”可以不要,如果不填,则表示当前连接,不过出于编程谨慎习惯的需要,我建议您填写这个$id.

$query="select * from userinfo";

//这一句,我们定义了一个字符串$query,并且赋值。其实这就是一个sql语句,我们下面要用到,所以把它存放在$query里面。
//这个sql语句的功能是查询出userinfo表中的所有记录(如果您不太熟悉sql语句,也不要紧,以后我们会多讲一些常用的语句)

$result=mysql_query($query);

//这一句是精髓。作用是,用mysql_query()函数,向mysql服务器发送一条sql语句执行指令,发送的指令就是前面定义的$query。
//指令发送之后,返回的结果,存放在$result里面。注意,查询返回的结果是一些列的记录集数据,不是我们常用的整型或者字符型
//如果你用echo $reuslt;输出这个变量的话,会得到 Resource #.. 之类的输出,意思是资源号..,$result现在的值是一些资源,不能直接用echo输出。
//我们下面就看看怎么把$reuslt中的数据输出到网页上

echo "<table border=1><tr><td>姓名</td><td>年龄</td></tr>";

//上面是输出了一个表格头

if(mysql_num_rows($result)<=3){
 $shuchu=mysql_num_rows($result);
}else{
 $shuchu=3;
}
//上面是一个简单的判断。判断一下表中一共有多少记录,如果少于三条,则全部输出,如果多于三条,则只输出三条
//里面用到了一个函数:mysql_num_rows(),这个函数用来判断结果记录集中一共多少条记录,参数就是记录集$result

for($i=1;$i<=$shuchu;$i++){
    $info=mysql_fetch_row($result);
    echo "<tr><td>".$info[1]."</td><td>".$info[3]."</td></tr>";
    }

//上面的代码,用一个for循环,输出$shuchu条记录,关于for循环的使用不是今天这篇文章的内容。只讲其中数据库有关的,
//里面第二行:$info=mysql_fetch_row($result);是关键。这句话的意思是:
//从结果记录集$result中取出一条数据,并且把数据存放在一个数组$info中。当然数组的名字是随便起的。
//mysql_fetch_row()的作用是,从一个记录集中取出一条记录,返回值是一个数组。取完之后,把记录指针向下移动一条
//注意,mysql_fetch_array()取得记录是当前记录指针指向的记录。初始时指针指向第一条数据。你可以用mysql_data_seek()
//函数来移动记录指针。但是刚才说了mysql_fetch_array()函数可以在取完一条后自动把指针下移一条
//这一点和asp不同,asp中需要用rs.movenext来吧记录指针移动到下一个

//我们获得的数组$Info,里面包含了第一条记录的有关信息,获得信息的方法就是用字段序数。注意,序数从0开始编号
//比如,刚才我的表,一共有id,username,password,age 4个字段,那么,你可以用$info[0],$info[1]...来依次获得
//上面程序中,$info[1]获得的就是第一行数据的第二个字段值,输出就是“张三”。。明白了么??

echo "</table>";

//最后当然要输出表格尾

mysql_close($id);

//这最后一句是关闭连接,这一句实际上可以不要,因为php在页面执行完毕后会自动关闭连接
?>
-----------------------------------------------------------------------------


好了,又用了2个小时时间来写这个教程。非常简单的例子,但是从这个例子你可以明白许多道理。
这个代码站长已经测试通过,完全可以运行,完整的代码(复制下去可以运行):

+++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
$id=mysql_connect("localhost","root","123");
mysql_select_db("linktest",$id);
$query="select * from userinfo";
$result=mysql_query($query);
echo "<table border=1><tr><td>姓名</td><td>年龄</td></tr>";
if(mysql_num_rows($result)<=3){
 $shuchu=mysql_num_rows($result);
}else{
 $shuchu=3;
}
for($i=1;$i<=$shuchu;$i++){
    $info=mysql_fetch_row($result);
    echo "<tr><td>".$info[1]."</td><td>".$info[3]."</td></tr>";
    }
echo "</table>";
mysql_close($id);
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++

谢谢您的阅读。
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2004-04-07 18:01:20  评分:1 

这篇文章我觉得写的狠好了,是不是因为太长,大家没人看啊。
怎么也没人回。
虽然长,但是很通俗易懂的。大家多支持啊。
 2#楼  
 
  回复人:Bangel
  注册时间:2004-07-06
  主题/回复:0/1
  积分:401
  等级:★★☆(五级)
  称号:略有小成

用户联系方式已设置为保密
 2#楼 发表于2004-07-06 18:23:21  评分:1 

  我下的PHP4.2.3-for-win32。。。运行你的这个程序后出现:
Fatal error: Failed opening required 'datafile/superadmin.php' (include_path='.;c:\php4\pear') in C:\Inetpub\wwwroot\index.php on line 24

能解释下吗?
 3#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 3#楼 发表于2004-07-06 19:14:38  评分: 

你这个错误,肯定不是我这个程序的原因
我这个程序是演示如何连接到MYSQL数据库的,代码非常简单,没有包含文件。
如果你的PHP环境配置没有问题,可以正常运行其他数据库程序,那么这个程序肯定没有问题。

错误提示的意思是:
  致命的(毁灭性)错误:打开文件“datafile/superadmin.php”失败,错误发生位置:c:\inetpub\wwwroot\index.php 第24行
 另外,括号里面提供了include_path,也就是php.ini中设置的包含文件路径。

首先,打开文件失败,打开superadmin.php失败,这个文件是哪里来的,大概只有你自己知道。是不是你在C:\Inetpub\wwwroot\index.php 这个文件里面用到了包含文件?

总之,错误原因有两个可能,一个是php.ini没有配置好。再一个就是你的index.php里面包含的superadmin.php不存在或者路径不对。

 4#楼  
 
  回复人:jsh204
  注册时间:2004-09-21
  主题/回复:7/37
  积分:494
  等级:★★☆(五级)
  称号:略有小成

   
 4#楼 发表于2004-09-26 00:59:11  评分:1 

通俗好懂!适合新手看呀!
 5#楼  
 
  回复人:阿代
  注册时间:2004-11-04
  主题/回复:22/32
  积分:542
  等级:★★☆(五级)
  称号:略有小成

   
 5#楼 发表于2004-11-06 01:33:02  评分:3 

正好适合刚入们的学习,挺好的!
 6#楼  
 
  回复人:ziying
  注册时间:2004-11-09
  主题/回复:9/21
  积分:467
  等级:★★☆(五级)
  称号:略有小成

   
 6#楼 发表于2004-11-20 06:24:45  评分:5 

太帅了,我支持你站长!
 7#楼  
 
  回复人:flyingclub
  注册时间:2004-11-20
  主题/回复:0/4
  积分:407
  等级:★★☆(五级)
  称号:略有小成

用户联系方式已设置为保密
 7#楼 发表于2004-11-22 01:19:39  评分:1 

这个站镇的不错。这篇文章也真的不错。
 8#楼  
 
  回复人:xxfx007
  注册时间:2004-11-24
  主题/回复:10/33
  积分:476
  等级:★★☆(五级)
  称号:略有小成

   
 8#楼 发表于2004-12-05 06:07:04  评分:1 

支持站长哥哥
 9#楼  
 
  回复人:gzbigll
  注册时间:2005-01-21
  主题/回复:3/7
  积分:422
  等级:★★☆(五级)
  称号:略有小成

   
 9#楼 发表于2005-02-24 00:13:48  评分:1 

多谢站长哥哥了!
 10#楼  
 
  回复人:cykk
  注册时间:2004-12-30
  主题/回复:41/99
  积分:688
  等级:★★★(六级)
  称号:声名鹊起

   
 10#楼 发表于2005-03-17 04:05:25  评分:1 

    我看了,好极了!支持站长!
 11#楼  
 
  回复人:小丸子
  注册时间:2005-03-04
  主题/回复:6/10
  积分:440
  等级:★★☆(五级)
  称号:略有小成

   
 11#楼 发表于2005-03-17 19:15:23  评分:5 

papapapa(拍手)
好东东
 12#楼  
 
  回复人:pnrj7999
  注册时间:2005-04-04
  主题/回复:73/43
  积分:813
  等级:★★★(六级)
  称号:声名鹊起

用户联系方式已设置为保密
 12#楼 发表于2005-04-18 17:01:27  评分:5 

老大。你又法慈悲了。真实功德无量啊
 13#楼  
 
  回复人:zhangjun434
  注册时间:2005-03-29
  主题/回复:14/22
  积分:492
  等级:★★☆(五级)
  称号:略有小成

   
 13#楼 发表于2005-04-18 18:12:19  评分:5 

呐无阿弥陀佛,斑竹真是太讲究了,太适合我这样的菜鸟学习了,打个最高分,嘿嘿
 14#楼  
 
  回复人:新传
  注册时间:2005-05-11
  主题/回复:0/2
  积分:402
  等级:★★☆(五级)
  称号:略有小成

   
 14#楼 发表于2005-05-11 17:53:17  评分:4 

写的很好,好懂!
 15#楼  
 
  回复人:ancang
  注册时间:2005-05-25
  主题/回复:0/4
  积分:404
  等级:★★☆(五级)
  称号:略有小成

   
 15#楼 发表于2005-05-25 21:15:50  评分:0 

ding
  页数1/4首页 « 1 2 3 4 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.021sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版