waid 发表于 2018-12-14 13:30:08

php基础教程之综合练习

  1.1 回顾
1.1.1 几个概念
  行:也叫记录,实体
  列:也叫字段、属性
  关系:两个表的公共字段
1.1.2 数据库的模型
  1、 层次模型
  2、 网状模型
  3、 关系模型:每个表都是独立的。
1.1.3 连接数据库
  1、 进入MySQL命令的文件夹用 cd命令
  2、 Mysql [-h 数据库地址] –u 用户名 –p 密码 [-P 端口]
1.1.4 对库进行操作
  1、 创建数据库
  a) Create database 数据库名 [选项 charset=字符编码]
  b) Create database if not exists 数据库名
  c) Show create database 数据库名
  d) Show databases 显示数据库
  e) Drop database 数据库名
  f) Alter database 数据库名 选项
1.1.5 对表进行操作
  1、 创建表的语法
  Create table 表名(
  字段名数据类型 ,
  字段名数据类型
  )charset =字符编码
  2、 数据类型
  a) bigint
  b) Int
  c) smllint
  d) tinyint
  e) char定长
  f) varchar可变长度
  g) text      大段文本
  3、 显示创建表的语法
  a) Show create table 表名 [\G]
  4、 显示所有表
  a) Show tables
  5、 删除表
  a) Drop table 表名
  b) Drop table表1,表2,表3
1.1.6 对数据进行操作
  1、 增
  a) Insert into 表 (字段名) values (值)
  b) 值的个数、顺序和字段的个数、顺序必须一致
  c) 插入字段名的顺序可以和表中的字段顺序不一致。
  d) 如果插入的值和数据表的字段的个数和顺序是一致的,字段名就可以省略.
  e) 通过插入null执行插入自动增长
  f) 通过default来插入默认值
  2、 删
  a) 语法:delete from 表 where 条件
  b) Delete from 表 表示删除表中所有数据
  3、 改
  a) 语法:update 表 set 字段=值,字段=值 where 条件
  4、 查
  a) 语法:select 列名 from 表 where 条件 order by 排序 limit 限制
  b) 可以通过*号代替所有字段
  c) Asc表示升序,desc表示降序,默认是升序
  d) Limit后面有两个参数,第一个是起始位置,第二个查询个数,起始位置从0开始。
1.2 作业
1.2.1 复习CSS
  CSS是一个样式,作用:控制网页样式,并且将样式和内容分离的一种标记性语言
1.2.2 自动分行
  将100个图片,每行放10个
http://s3.运维网.com/wyfs02/M00/8B/A0/wKioL1hTWvbzVhXBAADHfUFoIAg244.png
  思路:
  首先开启一个表格,然后开启一行,然后循环100次,到10的整数倍的时候关闭行,并且开启新行,最后关闭行,并且关闭表格。
  完整代码:
  
  table{
  width:980px;
  border:#000 solid 1px;
  margin:auto;
  border-collapse:collapse;/*collapse:塌陷; 作用:制作细线表格*/
  }
  td{
  border:#000 solid 1px;
  text-align:center;
  }
  
  
  
  
  
  
1.2.3 求数组的最大值
  思路:
  假设第0个值是最大, 循环比较,如果数组中有一个值比最大值要大,那就把这个值付给最大值。
  代码如下:
http://s5.运维网.com/wyfs02/M01/8B/A3/wKiom1hTWwXjUMaNAABvYZMRNE0009.png
  优化上面的代码:
  Count()用来计算数组的长度,count()函数放在条件中,如果循环N次,count()执行了N+1次,其实count()只要执行一次即可。
http://s5.运维网.com/wyfs02/M01/8B/A3/wKiom1hTWxCDPK8HAAAJl3UdkgY116.png
  再优化一下,将初始化数组数量放在for循环的初始化中。
http://s1.运维网.com/wyfs02/M01/8B/A0/wKioL1hTWxqxzHfjAAALKDNKzuA251.png
  完整代码如下:
  
  

    
  求阶乘
  
  
  请输入一个数:
  
  
  
  
  
  
  
1.2.6 打印水仙花数
  水仙花数的特点:三位的数字,满足的条件是abc=a3+b3+c3
  第一种方法
http://s2.运维网.com/wyfs02/M02/8B/A3/wKiom1hTWz6jzmVeAABUwahTNJE207.png
  第二种方法
  string substr ( string $string , int $start [, int $length ] )用来截取子字符串。
http://s2.运维网.com/wyfs02/M02/8B/A0/wKioL1hTW0jhLcCTAAA4loT5gSM822.png
1.2.7 九九乘法表
  规则:
  1、 第i行有i列
  2、 每个乘法都是当前列*当前行
  核心代码:
http://s2.运维网.com/wyfs02/M00/8B/A3/wKiom1hTW1jAE5H0AABp6kKnLwE225.png
  美化例题,添加上表格
http://s2.运维网.com/wyfs02/M01/8B/A0/wKioL1hTW2TQQLI5AABB07jbx_s635.png
  代码如下:
  
  table{
  width:980px;
  margin:auto;
  border-collapse:collapse;
  }
  tr{
  height:35px;
  }
  td{
  padding-left:10px;
  border:#000 solid 1px;
  }
  
  
  
  
1.3 MySQL客户端介绍
  1、 命令行:这种方法不友好
  2、 Web形式的可视化界面(phpMyAdmin)
  优点:只要有浏览器就可以操作数据库
  缺点:
  a) 创建数据库
http://s3.运维网.com/wyfs02/M01/8B/A3/wKiom1hTW3DjyItrAACoDUe3zck134.png
  b) 创建表
http://s2.运维网.com/wyfs02/M01/8B/A0/wKioL1hTW4HTXZHuAAAZhNKRSH0073.png
http://s1.运维网.com/wyfs02/M02/8B/A3/wKiom1hTW42Dl7VLAAAvKO-_rhE563.png
http://s4.运维网.com/wyfs02/M02/8B/A3/wKiom1hTW5bzRAFWAAAOR4MScNk204.png
  创建完毕后表结构如下:
http://s1.运维网.com/wyfs02/M00/8B/A3/wKiom1hTW8GAa41KAACK628JyNY545.png
  c) 插入数据
http://s2.运维网.com/wyfs02/M02/8B/A0/wKioL1hTW8vwtc34AABGqP0mN9M518.png
  d) 修改、删除数据
http://s4.运维网.com/wyfs02/M00/8B/A0/wKioL1hTW9aTFv0eAABnLbLSvaA936.png
  3、 Windows形式的客户端(MySQL-Front和Navicat)
http://s4.运维网.com/wyfs02/M01/8B/A3/wKiom1hTW-CxD6LMAAAcHf2dlBw576.png
http://s1.运维网.com/wyfs02/M00/8B/A3/wKiom1hTW_ywW3gRAAAqYnImyBU718.png
http://s2.运维网.com/wyfs02/M00/8B/A0/wKioL1hTW_zy1hN2AAA1fJgiEtY726.png
http://s2.运维网.com/wyfs02/M01/8B/A4/wKiom1hTW_ziB2n1AAAowqzDm9k900.png
http://s2.运维网.com/wyfs02/M01/8B/A0/wKioL1hTW_yhiQBkAAAcxMwYE6M678.png
  1.4 数据的导入和导出
1.4.1 数据导出
  选择数据库——导出
http://s1.运维网.com/wyfs02/M02/8B/A4/wKiom1hTXB-Q8aFQAADpqMj49Ik318.png
http://s1.运维网.com/wyfs02/M02/8B/A0/wKioL1hTXB_g7XwfAAAekrNedvg304.png
  点击执行后,就把表和数据生成SQL语句并保存下来。
1.4.2 数据导入
  1、 创建一个数据库。
  2、 选择数据库,点击导入
http://s3.运维网.com/wyfs02/M02/8B/A4/wKiom1hTXDKiXKeoAADH-0wSPlw725.png
1.5 综合项目
http://s4.运维网.com/wyfs02/M00/8B/A4/wKiom1hTXD2Ai3Y1AAAgVKrvm78330.png
  在项目中,PHP充当MySQL数据库的客户端,通过PHP连接数据库并且操作数据库的。
1.5.1 PHP开启MySQLI扩展
  PHP本身是一个框架,它的功能是由PHP扩展而来的,要通过PHP连接数据库,必须开启php连接MySQLI的功能,也就是php的mysql扩展。PHP的开发离不开数据库,而在PHP中可以通过MySQLi连接数据库的。但是MySQLi只能连接mysql数据库。同时mysqli是一种面向对象的技术
  在php.ini中,将extension=php_mysql.dll前面的分号去掉,重启服务器。
http://s5.运维网.com/wyfs02/M02/8B/A0/wKioL1hTXEfiksOFAAAHWcdPKyQ010.png
1.5.2 创建数据库
  通过phpMyAdmin新建一个data数据库,并将准备好的SQL文件导入到数据库中。
1.5.3 连接数据库
  使用面向对象进行数据库的连接,在创建对象的时候就自动的连接数据
http://s1.运维网.com/wyfs02/M00/8B/A0/wKioL1hTXFaCGjqHAAA-ikMeDr8931.png
1.5.4 终止执行
  exit([参数])和die([参数]),终止执行后,body、head闭合标签都不见了
http://s3.运维网.com/wyfs02/M00/8B/A4/wKiom1hTXGLR10IlAADbKr8JiPo647.png
1.1.1 设置字符编码
http://s5.运维网.com/wyfs02/M01/8B/A0/wKioL1hTXGzQiOcxAAAWi_DQReQ422.png
1.5.5 查询数据库
  通过$mysqli->query()执行SQL语句,返回一个对象型的数据。
http://s3.运维网.com/wyfs02/M02/8B/A4/wKiom1hTXHixhmXpAABIrzfsIcg507.png
1.5.6 取出结果集中数据(fetch_row)
  开始匹配,指针指向第一个记录,取出资源中的当前记录,匹配成索引数组,指针下移一条。
http://s5.运维网.com/wyfs02/M02/8B/A0/wKioL1hTXIGT3YlJAAGNEbsIixw209.png
  字段的索引从0开始依次往后递增
http://s2.运维网.com/wyfs02/M00/8B/A4/wKiom1hTXI6z0yUWAAAWFIeXed4456.png
http://s1.运维网.com/wyfs02/M00/8B/A0/wKioL1hTXJjht979AAAhrgVpDgk524.png
  全部取出,用while循环
http://s2.运维网.com/wyfs02/M01/8B/A4/wKiom1hTXKWzfUwZAABeWJFekdg308.png
  缺点:数据库字段的个数发生了变化,会影响程序中数组的索引编号
1.5.7 取出结果集中数据(etch_assoc)
  开始匹配时候指针指向第一个记录,取出资源中的当前记录,匹配成关联数组,指针下移一条。
  数组的键和数据表的字段名相关联
http://s5.运维网.com/wyfs02/M01/8B/A4/wKiom1hTXLGygB4FAABoQOicq_o458.png
1.5.8 取出结果集中数据(etch_array)
  开始匹配时候指针指向第一个记录,取出资源中的当前记录,匹配成的数组既支持关联数组,又支持索引数组指针下移一条。
http://s5.运维网.com/wyfs02/M02/8B/A4/wKiom1hTXLvTp-XfAABf-qiJgnM349.png
1.5.9 取出结果集中数据(fetch_object)
  从记录集中取出一条数据,匹配成对象,指针下移一条,一条记录是一个对象,一个字段就是一个属性。
  在PHP中通过->符号调用对象的属性
http://s5.运维网.com/wyfs02/M00/8B/A4/wKiom1hTXMTCGdrSAABtuDBHW8Q867.png
1.6 释放资源
  用$res->free()释放资源;
http://s1.运维网.com/wyfs02/M02/8B/A4/wKiom1hTXM-BmdmrAAAF5BP0PCk189.png
1.7 关闭连接
http://s5.运维网.com/wyfs02/M02/8B/A0/wKioL1hTXNmBipPlAAAHRa5gZ-w381.png
  页面执行完毕后,所有的变量全部销毁,所以可以不用手动释放资源。

页: [1]
查看完整版本: php基础教程之综合练习