一,服务器环境搭建
1-1.Apache服务器。(端口号定义,http协议,开启和关闭)
服务器:
我们在浏览器浏览网页的时候,在地址栏中都会产生一个url。通过这个url,浏览器从互联网中找到一个网页并下载到当前浏览器中显示。那么这个网页从何而来呢?
从web服务器来。一个网站完成开发后,我们需要把网站上传到一个web服务器中,web服务器会产生一个url地址,用户通过这个地址,在浏览器的地址栏中输入这个url,就可以在互联网上访问这个网站了。
web服务器是什么呢?web服务器实际上就是一台互联网联通的计算机,计算机上保存了许多文档或者网站,可供联网的客户端访问。
目前最主流的三个Web服务器是Apache、 Nginx 、IIS
Apache、 Nginx 、IIS :这三个指的是服务器运行环境。
1-2.webserver原理。

客户端浏览器向服务器发送一个http请求,请求通过应用层http携带请求的条件(数据),经过TCP与服务器的三次握手,确认连接成功后,向服务器发送数据包,服务器接收到数据所并通过解析处理后,向客户端返回数据包,客户端接收解析并将结果显示在页面。
1-3.集成环境安装。
这里使用wampserver集成环境
1-4.php运行环境介绍。
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。(这段话摘自百度百科)
二,php基础
1、简介: PHP 是 "PHP Hypertext Preprocessor" 的首字母缩略词 PHP 是一种被广泛使用的开源脚本语言 PHP 脚本在服务器上执行 PHP 没有成本,可供免费下载和使用 语法吸收了C,java,Perl等语言的特点,利于学习,使用广泛,主要适用于web开发领域
2、分界标示符(定界符)
php分界标示符表示确定php脚本的开始和结束位置,在php语言中有三种不同风格的分界
标示符可以让php代码嵌入到html代码中,分别如下
2-1,标准分界标示符<?php ?>
2-2,简写分界符<? ?>
2-3,<% %>
3,基本语法
PHP 变量
变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)
如:$num = 5; $num1 = 6; $str = "string";





三,mySQL数据库
1-1. 数据库概念(数据库,表,主键)
DB的概念:
DB的全称是data base,即数据库的意思。数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作;
DBMS的概念
DBMS的全称是Database Management System,即数据库管理系统的意思,是一个软件,用来管理数据库文件的软件,用户可以访问DBMS对数据进行增删改查操作,常见DBMS有: MySQL、oracle、DB2、sqlite、sqlserver等
1-2. 数据结构;
未结构化的数据:
我叫xxx,性别男女,今年18岁了,家住---,
结构化的数据:如下图

列:id name age phone adress等为列
字段:每一列为一个字段
主键:用于表示唯一的一行,一般将id设置为主键。
1-3. 操作数据库;
创建数据库:CREATE DATABASE myDB;//myDB为数据库名称
创建数据表:
CREATETABLE`mydb`.`studentinfo`(`sid`INTNOTNULLAUTO_INCREMENT,`sname`VARCHAR(50)NOTNULL,`sex`VARCHAR(10)NOTNULL,`age`INTNOTNULL,PRIMARYKEY(`sid`))ENGINE= MyISAM;
插入一行数据:
INSERT INTO `studentinfo`(`sname`, `sex`, `age`) VALUES ("张三","男",18);
一次性插入多行:
INSERT INTO `studentinfo`(`sname`, `sex`, `age`) VALUES ("李四","男",19);
INSERT INTO `studentinfo`(`sname`, `sex`, `age`) VALUES ("王五","子",18);
INSERT INTO `studentinfo`(`sname`, `sex`, `age`) VALUES ("赵六","男",22);
修改:根据sid=1修改sname
UPDATE `studentinfo` SET `sname`="张三1" WHERE sid = 1;
删除一行:删除sid=2这一行
DELETE FROM `studentinfo` WHERE sid=2;
查询所有:
SELECT * FROM `studentinfo`;
查询sid=1这一行:
SELECT * FROM `studentinfo` WHERE sid=1;
查询sid=1这一行中的sname和sex字段
SELECT `sname`, `sex` FROM `studentinfo` WHERE sid = 1;
查询studentinfo表中的sname和sex字段的所有信息:
SELECT `sname`, `sex` FROM `studentinfo`;
四,php 生成动态网页。


五.php 链接mySql
1.连接数据源
$db = mysqli_connect("localhost","root","");
2.连接数据库
mysqli_select_db($db,"myDB");
3.设置字符编码
mysqli_query($db,"set names utf-8");
4.设置sql语句
$sql = "SELECT * FROM `studentinfo` WHERE sid=1";
5.执行sql语句
mysqli_query($db,$sql);
六,项目案例:学生管理系统 php + mySql (sql 语句增删改查)
需求分析:
项目结构:

工具文件public.php,封装链接数据源方法,头信息的字符编码设置

1.注册页面:register.html
页面输入用户名,密码,点击注册按钮,向后台register.php发送请求

2.接口文件:register.php
接收register.html请求过来的用户名和密码,并将用户名和密码保存在数据库中,保存成功,即为注册成功,注册成功后跳转到登录页面login.html进行登录操作
保存失败,为注册失败,跳转到register.html继续注册操作

3.登录页面:login.html
输入用户名和密码,点击登录按钮,向后台login.php接口发送登录请求。

4.接口文件:login.hph
接收从页面发送过来的请求;
根据发送过来的用户名向数据库中查询该条数据,如果查询到一条数据,说明用户名存在,用户名存在时,将密码与查询到的该条数据中的密码对比,
如果匹配,说明登录成功,跳转到到学生信息接口studentInfo.php;
如果不匹配,说明密码不正确,跳转到登录页重新登录
根据发送过来的用户名向数据库中查询该条数据,如果没有查询到一条数据即结果为空时,说明用户名有误,跳转到登录页重新登录 。

5.接口文件:studentInfo.php;
在数据库中查询studentinfo表,查询所有学生信息,并将数据用表格的方式动态显示在页面。,其中最后一列需要添加一个修改和删除的a标签,对其点击会执行修改或删除操作,生成一个单独的a标签,该标签点击时进行添加学生信息操作。

6.删除接口:delete.php
在studentInfo.php生成的页面中,点击a标签,发送删除请求到接口delete.php中,请求中携带了一个id字段,字段为当前学生信息对应的id。
接口中招收id字段,根据该字段到数据库中删除对应的该条信息,
结果返回1说明删除成功,跳转到studentInfo.php接口继续显示学生信息。
返回空说明删除失败,跳转到studentInfo.php接口继续显示学生信息。

7.修改页面:update.html
在studentInfo.php接口生成的页面中,点击修改的a标签,发送修改请求到接口update.html中,请求中携带了一个该条所有学生信息字段,这些字段的信息都要默认显示在页面中。
获取url中的查询串信息,将信息分别显示在对应的文本框中,页面操作对想要修改的字段进行修改后,点击修改按钮,向update.php接口发送修改请求。

8.修改接口:update.php
接收update.html发送过来的请求,获取对应的字体信息,根据发送过来的id字段向数据库进行修改操作,执行修改语句后返回1说明修改成功,跳转到studentInfo.php接口显示学生信息,返回空说明修改失败,跳转到studentInfo.php接口显示学生信息;

9.添加学生信息页面:insertInfo.html
studentInfo.php接口显示的页面中点击添加a标签,跳转到insertInfo.html中,填写学生信息表,点击添加按钮,向接口insertInfo.php发送请求。

10.接口文件:insertInfo.php
接收页面请求过来的数据,将数据sql操作,插入到数据库中。执行sql语句后返回1说明信息添加成功,跳转到studentInfo.php接口显示学生信息,返回空,也要跳转到studentInfo.php接口显示学生信息。
