PHP基础学习笔记

写在前面:本文是为了用TinkPHP搭建服务端而学习的php基础,后面会更新ThinkPHP学习笔记,敬请期待~~
针对读者:本文写得较略,适合有一门编程语言基础的童鞋阅读

PHP基础

1.1apache知识

1.1.1几个概念

静态网站:不支持数据交互的网站吗,(html html)

动态网站:支持数据交互的网站。动态网站中是可以操作静态网页的

实现动态网站技术网站后缀
ASP.PHP
PHP.php
.NET.asqx
JAVA.jsp

除了ASP不要学外,其它三种随便学。因为asp是永远链接,链接了就不断了,所以只能做小网站。

php容易且开源,最快的时候可以30分钟一个网站,直接套模板非常非常快。

1.1.2客户端和服务器

客户端给服务器发送一个请求——(http请求),服务器会把静态资源(HTML代码、图片、js、CSS),客户端通过浏览器解析

1.1.3端口和端口号

端口号范围是0-65535,1024以下的端口号留给系统.。80端口一般留给WEB服务用,21端口留给FTP用。25端口留给邮件服务器用。端口类似一道门,端口号就是门牌号。服务器就是一幢大厦。

所以如果将来要用端口的话,把端口调大一点

(在本地把网站做好了,要传到服务器上就用flashfxp工具,是一款ftp工具。)

如何查询端口号占用情况:

开始-运行-cmd 【command命令】

在命令行输入 netstat -ano

​ CS架构,比如qq,Mysql数据库。

1.1.4前台和后台

前台是给浏览者,后台由管理员操纵,后台用来操作前台数据,比如我们在qq空间发说说,编辑的时候就在后台操作,

1.1.5 站点

将与网站有关的素材都存放到一个文件夹,此文件夹就是站点。

1.2Apache的安装

思考:语言的运行要不要环境

答:语言的运行都需要环境,Apache为PHP运行提供了环境。IIS也可以为PHP运行提供环境,IIS是微软公司开发的,为asp和aspx提供环境。但一般php还是选apache。

1.2.1获取安装包

注:在apache的安装路径中不能出现中文

为了便于管理,在F盘新建wamp文件夹(Windows,Apache,MySQL,PHP)在此文件夹下再并列建立apache,mysql,php文件夹

the feature and all subfeatures will be installed on local head drive:将功能和所有子功能都安装到本地硬盘上。

安装完毕后,状态栏的右下角会出现一个羽毛状的图标,这就事Apache的图标

1.2.2测试服务器

在浏览器的地址栏中输入http://localhost,如果看到it works表示服务器正常

localhost:本地主机 ip地址是127.0.0.1

所以测试时写http://127.0.0.1也可以。

这里就得注意服务器的概念,搞网络的人说去买台服务器吧,那是指一台机子,但是说到客户端请求服务器,就可以具体化,就是请求这个apache也叫服务器软件。

一台电脑其实可以做多个服务器,可以做邮电服务器,做数据库服务器,还可以做php服务器。人家让你把服务器重启一下,你总不能把这台机子重新启动吧。说的重启服务器只需要移到俺怕车图标上点击restart。

1.2.3 apache的服务器的操作

我们说的服务器是apache。

副武器的操作有:

  1. 启动
  2. 关闭
  3. 重启

操作方法一:点击apache图标(状态栏)

apache2.2-启动(start)/停止(stop)/重启(restart)

操作方法二:双击apache图标,会打开apache的控制面板,在面板上可以启动/停止/和重启

操作方法三:控制面板-管理工具-服务

win10是:控制面板——系统和安全——管理工具——服务

1.2.4 目录结构

本机apache装在D盘APM文件夹下,与之并列的还有mysql和php-5.6.36

bin——apache的命令文件夹(二进制命令)

conf——apache的配置文件夹,里面的httpd.conf就是apache的配置文件。

htdocs——虚拟目录(就是站点,比站点强大点)站点可以随便放,比如放到c盘d盘之类的,但虚拟目录不能,这个文件定死了就在这里,如果要改还得该配置文件

1.3 php安装

装apache是装PHP的运行环境,php是一门语言,还得装它的运行规则,有点类似jdk

  1. 获得安装包

php-5.2.8-win32-installer.msi这个版本虽然地点,但是装完不用配置,因为装的过程中会让你指向apache配置文件夹。其他版本要配置

  1. 安装步骤

安装完毕后,要重启服务器,点一下restart

  1. php测试

在虚拟目录中新建一个php页面test.php,代码入下:

<?php ​ phpinfo(): ?>

在浏览器的地址栏中输入http://localhost/test.php见到php信息就可以

  1. php文件结构

    它的配置文件是php.ini

1.4 MySQL的安装

数据库在网站中的地位,用来保存数据。MySQL默认端口3306,

在任务管理器中可以查看,带d的是服务器端

如mysql.exe是客户端,mysqld.exe是服务器端。关闭了mysql client这个命令行只是关闭了客户端还有服务端在,所以从这里也能看出MySQL是CS架构,可以在我这台机上只启动服务器,你那台机子上启动客户端,就能远程访问了。

1.5 LAMP和WAMP

  • L:Linux 操作系统(开源),多用户操作系统《》 W:Windows操作系统。

  • A:Apache 开源

  • P:PHP 开源

  • M:MySQL 开源的数据库

LAMP组合

1.6集成环境的安装

可以安装WAMP.exe一套。

1.7更改虚拟目录

因为PHP的运行需要apache的支持,所以,php的目录要告知apache。在apache的配置文件中配置php虚拟目录的位置。

打开apache的配置文件

ctrl+f查找Documentroot,修改,如C:/web。

本机是DocumentRoot “D:\WorkSpace\PHP\Default”

配置文件是不区分大小写的

测试:

在浏览器地址栏中输入http://localhost/test.php发现,无法打开指定页面(此页面在c盘web文件夹下)

原因:没有给更改的目录设置访问权限

解决:在httpd.conf中,将指定文件夹的权限设定为allow from all

这时再次测试,成功。

到这时,就能发现虚拟目录和站点的区别了

站点:就是一个文件夹(里面放了网站素材)

虚拟目录:文件夹+权限

1.8更改首页

在apache的配置文件中查找DirectoryIndex这个指令是设置网站首页。

在DirectoryIndex指令后面添加test.php就可以了。

1.9更改监听端口

配置文件的Listen,进行修改或添加

浏览器请求的格式:

http://网址:端口号/php页面。

如果端口号是80,那么这个端口号可以省略

1.10DNS解析

DNS:Domain Name System

在互联网上唯一标识的一台计算机的是IP地址。但是IP地址不方便记忆,我们通过一个域名对应一个IP地址

客户端输入www.sina.com,会变为202.108.33. 60,也即是说会先请求最近的DNS服务器,将域名解析成IP地址,对这几年的DNS。最近的DNS解析服务就是本机·。

  1. 0.0.1:本机

本机的DNS解析数据库“C:\Windows\System32\drivers\etc\hosts

1.11虚拟主机的配置

一台主机(服务器)差不多1万,托管一年也差不多一万

一个apache支持多个网站,从浏览者的角度看起来,每个网站都是一个独立的主机,(实际上只有一个主机,一个apache),所以称为虚拟主机。

开启虚拟主机的配置:进入apache的conf目录下,进入httpd.conf文件

#Virtual hosts

Include conf/extra/httpd-vhosts.conf:把这行的注释符去掉就开启了虚拟主机

再找到conf目录下的extra目录进入,找到httpd-vhosts.conf文件,这就是虚拟主机的配置文件

1.12总结

站点-虚拟目录-虚拟主机的本质都是那个文件夹。

  1. 站点:

    配置文件中只有目录声明, DucumentRoot “C:/web2“

  2. 虚拟目录:

    除了有目录还有权限,

DocumentRoot :"C:/web2"

<Directory  "C:/web2">

​	allow from all

</Directory>
  1. 虚拟主机

    除了以上还有网址。

    DocumentRoot :"C:/web2"
    ServerName  www.sohu.com
    	<Directory  "C:/web2">
    
    ​		allow from all
    
    	</Directory>
    

2.1回顾

  1. 静态网站和动态网站

    • 不支持数据交互的网站(.html htm)

      a. 优点:速度快(因为服务器不用执行,而是浏览器解析),最安全(服务器都不执行,黑客无法攻击)

      b.缺点:更改不方便

    • 支持数据交互的网站

      a. 优点:更改方便

      b. 缺点:效率和安全性都没有静态网站高

  2. 客户端和服务器端

    • 客户端:浏览器使用的计算机
    • 服务器端:存放网站代码的机器
  3. 端口和端口号

    • 端口就是服务运行的入口,类似于大楼的门
    • 端口号:门的门牌好, 范围是0-65535
  4. 前台和后台

    • 浏览器看到的界面
    • 管理员操作的界面
  5. 站点、虚拟目录、虚拟主机

    • 站点:存放网站内容的文件夹
    • 虚拟目录:有权限的文件夹
    • 虚拟主机:有权限的文件夹+域名+端口+其他一些配置
  6. 更改虚拟目录

    • DocumentRoot用来更改虚拟目录
    • 要注意更改文件夹的权限
  7. 更改首页

    • DirectoryIndex
  8. 更改监听器端口

    • Listen

      配置文件的指令不区分大小写

2.2PHP简介

PHP:Hypertext Preprocessor,中文名:超文本预处理器。是一种通用的开源脚本语言,运行在服务器端。

php底层使用c语言开发的,MySQL底层使用c++开发的

2.3PHP四种定界符

2.3.1 标准风格

<?php
    //php代码
?>

2.3.2 短标记风格

默认是不支持短标记风格,要在php的配置文件中(php.ini)中开启支持短标记,将short_open_tag值设置为on。重启服务器

[外链图片转存失败(img-dvaLeBsP-1562311878608)(C:\Users\Luckyrin\AppData\Roaming\Typora\typora-user-images\1561533337384.png)]

<?
 	//php代码   
?>

2.3.4 asp风格

默认是不支持asp风格定界符,要在php.ini中开启,asp_tags的值设置为on

<%
    //php代码
%>

2.3.5 Script标记风格

<script language="php">
    //php代码
</script>

?>

PHP支持省略结束标记,PHP开始定界符后面一直到最后没有全部都是PHP代码的情况下可以省略PHP结束符。

2.4PHP执行原理

客户端想服务器发送一个请求,如果请求的是一个HTML页面,服务器直接将HTML 页面发送给客户端给浏览器解析,如果请求的是PHP页面,则服务器会运行PHP页面然后生成标准的HTML,将生成的HTML代码发送到客户端。

2.5PHP语法的特点

  1. php语句以分号结尾

  2. PHP的关键字不区分大小写(编程里要用的字为关键字,如if和IF都可以),但是变量名是区分大小写的。JavaScript的变量大小写也是区分的。

    其实除了sql和vb其他语言基本都区分大小写。

2.6 变量

变量是计算机内存中的一段空间

2.6.1变量的命名规则

必须以 开 头 , 开头, 不是变量名的组成部分,仅仅表示PHP的变量名从这里开始。除了$以外,字母、下划线开头,后面跟的是字母、数字、下划线。

2.6.2变量的赋值

用=来做赋值运算

变量可以传值也可以传地址,&,取址,

2.6.3 销毁变量

通过unset()来销毁变量。unset()销毁的是变量名。值是由PHP的垃圾回收机制销毁的。

2.6.4可变变量

<?php
 	$a='锄禾日当午;
    $b='a';//$b中存放的是变量名
    echo $$b;
 ?>

b 保 存 的 是 变 量 名 a , 所 以 b保存的是变量名a,所以 ba b 就 是 b就是 ba,最后输出$a的值

2.7常量

当一个值在脚本执行周期内不发生变化,就可以将值声明成常量,用define()关键字

常量名不能以$开头。

默认情况下,常量名是区分大小写的,可以通过define的第三个参数设置是否区分大小写。

Ture:不区分,FALSE:区分

define('name','李白',ture)echo Name;//还是能输出

常量不能重复定义。

2.8变量的数据类型

2.8.1标量的数据类型

类型描述
整数类型范围 − 2 31 -2^{31} 231~ 2 31 − 1 2^{31}-1 2311
浮点数存放整数和小数
布尔型Ture和FALSE
字符串型双引号字符串和单引号字符串

2.8.2复合类型

类型描述
数组array
对象object(以后再讲)

数组:计算机内存中一段连续的空间,通过下表来区分数组

  1. 数组的分类:索引数组和关联数组

    
    <?php
        //索引数组:通过元素的位置做下标,默认从0开始,每次增长1,可以更改数组的起始下标。
     	$stu=arrray('tom','beerry','ketty','rose')   
        echo $stu[0],'br'
       	echo $stu[1],'br'
        //=>这个符号是数组的赋值号,把李白赋值给name
        //关联数组,通过字符串做下标,元素的值与字符串有某种关联
        $emp=array('name'=>'李白','sex'=>'男','age'=>22);
    	echo $emp[name],'<br>';
    	echo $emp[sex],'<br>';
    	echo $enp[age],'<br>;
    ?>
    
    思考:请写出数组的下标
    $stu=array(1=>'a','b','c','d');
    print_r($stu);//输出结果是Array([1]=>a[2]=>b[3]=>c[4]=>d),这种应该叫关联数组吧 
    再思考
    $stu=array('a',2=>'b','c',5=>'d');
    print_r($stu);//输出Array([0]=>a[2]=>b[3]=>c[5]=>d)
    再来
    $stu=array(1=>'a',1=>'b',1=>'c','d');
    print_r($stu);//输出Aray([1]=>c[2]=>d)
    
  2. 键值对

    数组的下标我们可以称为键,下标和对应的值称为“键值对”

2.8.3特殊类型

  1. resource(资源)

    PHP的外部数据称为资源类型

    如php要访问的mysql数据,或者text文本这种东西。

  2. NULL(无类型)

2.8.4字符串

​ 单引号字符串是真正的字符串,双引号字符串要将变量给替换。因为单引号字符串不需要运算,所以单引号字符串执行效率高些。

​ 变量如果在字符串的前面或中间,要用{}括起来,{和$符可以调换位置

2.9输出语句

  1. echo

    只能输出数字、字符串,对弈布尔型,TURE输出为1,FALSE输出为空

    可以一次输出多个参数,没有返回值。

  2. print

    和echo语句很类似

    一次只能输出一个参数

    输出成功会返回1,失败会返回0

  3. print_r()

    用来输出数组,输出的内容包括数组的键和值,不包括数据类型。

  4. var_dump()

    若传入参数变量,则输出变量的值和变量的类型。

    若传入参数为数组,则输出包括键、值和值的数据类型。

2.10php注释

单行注释:

//,#

多行注释:

/*

*/

2.11运算符

  1. 算术运算符

    一元运算符二元运算符
    -(负号)+
    ++自增-
    –自减*
    /
    %

    注意:

    • +号在js中可以做数字的相加,也可以做字符串的相加(字符串相连),但在php中,+只能做数字运算。
    <?php
        echo '10'+'20'//结果是30,在php中,+只能做数字运算
        echo '10aa'+'20bb'//结果还是30,
        echo 'aa'+'bb'//结果是0
    ?>
    
    • 取模就是取余数
  2. 比较运算符

    运算符描述
    >大于
    >=大于等于
    <小于
    <=小于等于
    ==等于
    !=不等于
    ===全等
    !==不全等
    • =的区别,==只比较值,===比较值和数据类型

      <?php
          $a=10;
      	$b='10';
          if($a==$b) {
              echo '相等'}else {
              echo '不相等';
          }
      	echo '<hr>';
      	if($a===$b) {
              echo '全等'}else {
              echo '不全等';
          }
      ?>
      //输出    相等            不全等
          
      <?php
          $a='abc';
      	$b=0;
          if($a==$b) {
              echo '相等'}else {
              echo '不相等';
          }
      ?>
          //输出  相等(把字符串转为0再比较,这个在js中是不等的)
          //所以在php中要做相等的话,建议用===(全等符)
      
  3. 逻辑运算符

    运算符描述
    &&与:并且
    ||或:或者
    !非:取反

    逻辑运算符是用来连接比较运算符的。

  4. 字符串连接符

    在PHP中,字符串连接符是点(.);

    <?php
        $a=10;
    	$b=20;
    	echo $a.$b;//输出1020,字符串连接
    ?>
    
  5. 赋值运算符

    运算符描述
    =赋值
    +=a+=b a=a+b
    -=a-=b a=a-b
    *=a*=b a=a * b
    /=a/=b a=a/b
    %=a%=b a=a%b
    .=a.=b a=a.b(a连上b)

    6.三元运算符

    表达式?值1:值2

    如果表达式为真,返回值1,否则返回值2。

    isset()用来判定变量是否赋值,并且不为NULL

    is_numeric()用来判定是否是数字或数字字符串,如果是数字或数字字符串返回TRUE,否则返回false

    将数字字符串转成数字类型:$num+=0(因为表单提交过来都是字符串类型)

    is_int()用来判定是否是整型(不是判断整数,若是数字字符串,会返回false)

    2.12多分支

    if(条件)

    {

    }elseif {

    }else {

    }

    js中else和if中间有空格,php中官方推荐无空格,但有空格输出也一样,只是原理有点不一样

2.12多路选择

switch(表达式){
    case 常量:
        代码;
        [break;]
    case 常量:
        代码;
        [break;]
    default:
        代码;
}

2.13循环语句

循环的三要素是

初始值,条件,增量

2.13.1 for循环

语法:

for(初始值;条件;增量) {

​ //循环体

}

for($i=1;$i<=10;$i++) {
    echo "{$i}:锄禾日当午<br>"
}

2.13.2 while

while条件成立就执行,条件不成立就不执行。

语法:

while(条件)

{

​ //循环体(包括增量)

}

2.13.3 do-while

语法:

do

{

​ //循环体

}while(条件)

while和do-while的区别

1.while是先判断再执行,do-while是先执行再判断

2.while条件不成立就不执行,do-while至少执行一次。

简述for、while、do-while他们使用的环境

答:这三个循环是可以相通的;如果明确知道循环多少次,最好选for循环;

如果不知道循环多少次,只是循环到条件不成立为止,最好选while或do-while

想先判断在执行选while,想先执行再判断选do-while

2.13.4 foreach

这个循环专门用来遍历数组。

语法一:

foreach(数组 as 变量)

比如

<?php
    $stu=array('tom','berry','ketty','rose');
        foreach($stu as $v)
        {
            echo $v.'<br>';
        }
?>
/*输出
tom
berry
ketty
rose*/

语法二:

foreach (数组 as $key=>$value)
{
    //循环体
}
//比如
<?php
    $stu=array('tom','berry','ketty','rose');
        foreach($stu as $key=>$value)
        {
            echo "{$key}-{$value}<br>";
        }
?>
/*输出
0-tom
1-berry
2-ketty
3-rose
*/
    
    
    
//再比如
<?php
    $stu=array('name'=>'李白','sex'=>'男','age'=>20);
    foreach($stu as $k=>$v)
    {
    	echo "{$k}=>{$v}<br>";
    }
?>
/*输出
name=>李白
sex=>男
age=>20
*/

例题从1加到100

//for循环
<?php
    $sum=0
    for($i=1;i<=100;i++){
     	$sum+=$i;   
    }  
	echo "for:从1加到100的和是:{$sum}<br>";
?>
    
//while循环
<?php
    $sum=0;
	$i=1;
    while($i<=100) {
        $sum+=$i;
        $i++;
    }
	echo "while:从1加到100的和是:{$sum}<br>";
?>

2.14函数

语法:

function 函数名(参数)

{

​ //函数体

​ [return]//可以不写

}

<?php
	function cal($num1,$num2)
{
    $num=$num1+$num2;
    echo "{$num1}{$num2}的和是{$num}<br>";
}
cal(10,20);
?>

return

作用:

  1. 终止函数的执行(终止循环用break)

2.15 数组分类

按照键来分:分为索引数组和关联数组。

按结构来分:一维数组和多维数组

二维数组可以看成一个数组里放了一个数组

//获取索引数组
<?php
	$stu=array(
		array('tom','bettty','ketty'),
    array('李白','杜甫','白居易');
	);
    echo $stu[0][0],'<br>';
    echo $stu[1][2];
?>
  
//获取关联数组    
<?php
	$stu=array(
		array('name'=>'张三','sex'=>'男','age'=>20)
    	array('name'=>'sle,'sex'=>'','age'=>18);
	);
    echo $stu[0]['name'],'<br>';
    echo $stu[1]['age'];
?>

2.16编码乱码问题

中文会乱码,原因是:浏览器不知道这个页面的字符编码

解决一:

在页面的最上面添加一个meta,在meta中设置字符编码

<meta charset="utg-8">
<?php
echo '锄禾日当午';
?>

解决二:

设置PHP的头信息。

header(‘Content-Type:text/html;charset=utf-8’);

<?php
    header('Content-Type:text/html;charset=utf-8');
	echo '锄禾日当午';
?>

综合项目

[外链图片转存失败(img-7JW3GMlF-1562311878614)(C:\Users\Luckyrin\AppData\Roaming\Typora\typora-user-images\1561691550552.png)]

在项目中,PHP充当MySQL数据库的客户端,通过PHP连接数据库并且操作数据库。

1.PHP开启MySQL扩展

PHP本身是一个框架,它的功能是有PHP扩展而来的,要通过PHP连接数据库,必须开启连接mysql的功能,也就是PHP的MySQL扩展。

在php.ini中,将extension=php_mysql.dll前面的分号去掉,重启服务器。

[外链图片转存失败(img-7aoqBPDO-1562311878616)(C:\Users\Luckyrin\AppData\Roaming\Typora\typora-user-images\1561692245589.png)]

wamp集成环境是默认开启的。

1.1创建数据库

通过phpMyAdmin新建一个data数据库,并将准备好的sql文件导入到数据库中,字符集用

utf8-general-ci

1.2连接数据库

查阅帮助文档,php_manual_zh.chm,进入搜索mysql,如果开启了mysql扩展,就可以使用msysql打头的这些函数了。

通过mysql_connect(数据库地址,用户名,密码),返回一个数据库的连接对象(resource类型)

<?php
    //连接数据库
    $link=mysql_connect('localhost','root','')if($link)//在php中有值为真,Null值为假
    {
        echo '连接成功';
    }else {
        echo '连接失败'}
?>

//通过or语句可简化上面的代码
<?php
    $link=mysql_connect('localhost','root','aa') or die('数据库连接失败')?>

继续优化上面代码,如果连接失败,会显示报错信息,这时候可能会暴露敏感信息。

通过@可屏蔽错误信息

$link=@mysql_connect(‘localhost’,‘root’,‘aa’) or die(‘数据库连接失败’);

[外链图片转存失败(img-x9RVhbT3-1562311878617)(C:\Users\Luckyrin\AppData\Roaming\Typora\typora-user-images\1561702169355.png)]

1.3终止执行

exit()和die()都可以,里面都可以放一些参数,比如终止时输出一段话

1.4选择数据库、查询数据库

方法一:

通过执行“use 数据库名”来选择数据库

mysql_query()函数用于执行sql语句

mysql_query(‘use data’)

<?php
    //1.连接数据库
    $link=mysql_connect('localhost','root','aa') or die('数据库连接失败')//2.选择数据库
    mysql_query('use data') or die('数据库选择失败')//3.获取products表的数据
    $rs=mysql_query('select * from products');
	var_dump($rs);//输出resource(4)oftype(mysql result),这种资源类型是不能用foreach遍历的
?>

方法二:mysql_select_db(‘data’)

1.5取出结果集中数据(mysql_fetch_row)

开始匹配,指针指向第一条记录,取出资源中的当前记录,匹配成索引数组,指针下移一条

缺点:数据库字段的个数发生了变化,会影响程序中数组的索引编号

<?php
    //1.连接数据库
    $link=mysql_connect('localhost','root','aa') or die('数据库连接失败')//2.选择数据库
    mysql_query('use data') or die('数据库选择失败')//3.设置MySQL客户端的字符编码
    mysql_query('set names utf8');
    //4.获取products表的数据
    $rs=mysql_query('select * from products');
	var_dump($rs);//输出resource(4)oftype(mysql result),这种资源类型是不能用foreach遍历的
	//5.循环输出
	<table>
        <tr>
        <th>编号</th>
        <th>商品名称</th>
        <th>规格</th>
        <th>价格</th>
        </tr>
        
        while($rows=mysql_fetch_row($rs))
        {
            echo '<tr>';
            echo '<td>'.$rows[0].'</td>';
            echo '<td>'.$rows[1].'</td>';
            echo '<td>'.$rows[2].'</td>';
            echo '<td>'.$rows[3].'</td>';
            echo '</tr>';
        }
    </table>
?>

1.6取出结果集中数据(mysql_fetch_assoc)

开始匹配,指针指向第一条记录,取出资源中的当前记录,匹配成关联数组,指针下移一条

数组的键和数据表的字段名相关联。

 
        while($rows=mysql_fetch_assoc($rs))
        {
            echo '<tr>';
            echo '<td>'.$rows['proID'].'</td>';
            echo '<td>'.$rows['proname'].'</td>';
            echo '<td>'.$rows['proguige'].'</td>';
            echo '<td>'.$rows['proprice'].'</td>';
            echo '</tr>';
        }//这里字段区分大小写,因为这里已经不是数据库了而是PHP中的关联数组。

//输出resource(4)oftype(mysql result),这种资源类型是不能用foreach遍历的
//5.循环输出







编号商品名称规格价格

    while($rows=mysql_fetch_row($rs))
    {
        echo '<tr>';
        echo '<td>'.$rows[0].'</td>';
        echo '<td>'.$rows[1].'</td>';
        echo '<td>'.$rows[2].'</td>';
        echo '<td>'.$rows[3].'</td>';
        echo '</tr>';
    }
</table>

?>


## 1.6取出结果集中数据(mysql_fetch_assoc)

开始匹配,指针指向第一条记录,取出资源中的当前记录,匹配成<u>关联数组</u>,指针下移一条

数组的键和数据表的字段名相关联。

~~~php
 
        while($rows=mysql_fetch_assoc($rs))
        {
            echo '<tr>';
            echo '<td>'.$rows['proID'].'</td>';
            echo '<td>'.$rows['proname'].'</td>';
            echo '<td>'.$rows['proguige'].'</td>';
            echo '<td>'.$rows['proprice'].'</td>';
            echo '</tr>';
        }//这里字段区分大小写,因为这里已经不是数据库了而是PHP中的关联数组。
  • 11
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值