毕业设计 之 二 PHP学习笔记(一)

时间:2021-11-16 03:40:01

毕业设计 之 二 PHP学习笔记(一)


作者:20135216
平台:windows10
软件:XAMPP,DreamWeaver

一、环境搭建

1.XAMPP下载安装

  1. XAMPP是PHP、MySQL及Apache的集成开发平台。

  2. 在官网下载XAMPP。按照提示进行安装。关于安装组件,选择如下:

    • 毕业设计 之 二 PHP学习笔记(一)
  3. 启动服务。这里遇到了问题,就是Apache服务启动后会遇到错误而停止

    • 毕业设计 之 二 PHP学习笔记(一)
  4. 查找了一下原因,系统提示有其他blocks占用了端口。经典代表:迅雷。我打开目录C:\xampp\apache\conf(我的安装目录为C:\xampp)下的httpd.conf文件,将Listen 80和 ServerName localhost:80中的80改为8081(0-1023端口是系统保留端口,尽量不要使用)

    • 毕业设计 之 二 PHP学习笔记(一)
  5. 再次开启Apache服务,完美

    • 毕业设计 之 二 PHP学习笔记(一)
  6. 浏览器里输入localhost:8081,访问XAMPP

    • 毕业设计 之 二 PHP学习笔记(一)

2.DreamWeaver下载操作

  1. DreamWeaver是编辑、开发网站的平台。在软件下载平台下载了破解版进行安装。

    • 把不必要的安装组件都删去了
    • 毕业设计 之 二 PHP学习笔记(一)
  2. 操作流程:

    • 在C:\xampp\htdocs目录下新建php文件夹。然后打开Dreamweaver,“站点”-“管理站点”-“新建”命令,设置站点名称和路径
    • 毕业设计 之 二 PHP学习笔记(一)
    • 单击“服务器”选项,添加服务器
    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)
    • 保存后,勾选“测试”一栏,然后确定
    • 毕业设计 之 二 PHP学习笔记(一)
  3. 注意事项

    • 关于命名:对整个工程建立文件夹,其下的自工程或者子模块对应相应的子文件夹,命名时一定用英文、简洁突出。同时,本地站点中规划设计的网站文件结构要同上传到Internet服务器中被人浏览的网站文件结构相同
    • 关于逻辑架构:每个网页建立首页链接;建立网站导航,突出当前页位置;增加搜索和索引功能;必要的信息反馈功能
  4. XAMPP与DreamWeaver的区别?

    • 其实,在我理解中,二者是铅笔与直尺的关系。前者是用来编写网站文件的工具,后者是对编写好的网站文件进行逻辑构建和整体编辑的部署性软件;即先XAMPP,再DreamWeaver

二、基本语法

1.PHP语法

  1. 基本函数

    • string trim(string str) ; 返回值:字符串 ; 作用:清楚字符串首尾的空白字符
    • strtoupper() ; 作用:字符串转换成大写字母
    • ucfirst() ; 作用:将字符串的第一个字母转换成大写
    • ucwords() ; 作用:将每个单词的第一个字母变大写
    • addslashes() ; 作用:在特殊字符(\、'、")前加\
    • stripslashes() ; 作用:与上相反
  2. 变量与常量

    • 可以用''或者“”标识string变量,二者的区别在于:
      • ''中的变量不会被解析,如果字符串中还含有',则需要再前面加上\进行转义
      • “”中的变量可以被解析,并且可以识别更多的转义字符
  3. 杂项

    • define([常量名],[常量值]):将常量值赋给常量
    • PHP中变量不能数字开头,否则视为无效
    • 关于变量的引用赋值
      • 原因在于,引用了这个变量的地址之后,相当于指向了这个变量所在的内存地址,做的任何修改都会直接改变这个变量的值,自然也会改变其他引用这个地址的变量值

      • 举例如下:

          $ba = &$wo;//这样只要修改其中一个,另一个也会改变
    • intval():将数据强制转换为整型
    • 变量被认为是空值的三种情况
      • 变量没有被赋值
      • 变量被赋值为NULL,0,FALSE或者字符串
      • 变量在非空值的情况下,被unset()释放
    • settype(mixed var,string type)函数,可以强制修改变量类型
    • 连接运算符(.):将返回将其左右参数连接之后的字符串
    • 连接赋值运算符(.=):将右边参数附加到左边参数后面
    • 逻辑运算符xor:常用来测试真假,即左右两个表达式中任一为true,但不同时是
    • 数组运算符:
      • $a == $b , 表示如果数组a和b具有相同元素,则返回true
      • $a === $b , 表示如果数组a和b具有相同元素且顺序相同,则返回true
      • $a<>$b , 表示如果a不等于b,就返回true
    • 函数传参问题:
      • 引用传递:如果希望在函数内部被修改的变量在函数之外也同样生效,那么就需要传递变量的内存地址给函数,即传递 &$name

      • 举例

          function change(&$string)
        {
        $string = "&abc";
        }

2.MySQL基本语法

  1. 连接函数

     $conn = mysql_connect(servername,username,password);//返回供使用的连接
  2. CREATE创建函数

    • 顺序:链接库-->创建库-->选择库-->建立数据表

        <?php
      $conn = mysql_connect("localhost","root","admin");
      if(!$conn)
      {
      die('不能连接库'.mysql_error());
      }
      if(mysql_query("CREATE DATABASE my_db",$conn))
      {
      echo "Database created"; }
      else
      echo"error creating database:".mysql_error();
      mysql_select_db("my_db",$conn);//选择新建立的数据库
      $sql = "CREATE TABLE Persons(Firstname varchar(15),Lastname varchar(15),Age int)";//varchar类型数据库字段必须指定字段最大长度
      mysql_query($sql,$conn);
      mysql_close($conn);
      ?>
  3. 主键字段

    • 主键用于唯一地标识一行,所以其在表中必须唯一

    • 举例

        $sql = "CREATE TABLE Persons
      (
      personID int NOT NULL AUTO_INCREMENT,
      PRIMARY KEY(personID),
      Firstname varchar(15),
      Lastname varchar(15),
      Age int)";
  4. 插入数据

     mysql_query("INSERT INTO Persons(Firstname,Lastname,Age) VALUES('chen','yicai','37')");
  5. 读取数据

    • mysql_fetch_array();第一次返回的是以数组形式存放的、记录集的第1行;以后每次调用都返回下一行
  6. 排序数据

    • ORDER BY [VALUE]:默认按照升序排序
    • ORDER BY [VALUE] DESC:按照降序排序
  7. 更新数据

     mysql_query("UPDATE Persons SET Age = '39' WHERE Firstname = 'chen' AND Lastname = 'yicai'");

三、Dreamweaver+PHP开发基础

1.创建数据库

  1. 进入XAMPP欢迎页面之后,点击右上角的phpmyadmin,进入数据库管理界面。新建数据库,选择编码方式为 utf8 general ci(对大小写不敏感

    • 毕业设计 之 二 PHP学习笔记(一)
  2. 选中新建的数据库,在其中建表(字段数为4个,即下面的ID,name,age,result)

    • 毕业设计 之 二 PHP学习笔记(一)
  3. 创建字段

    • 毕业设计 之 二 PHP学习笔记(一)
  4. 我尝试着在其中插入了四条数据

    • 毕业设计 之 二 PHP学习笔记(一)

2.设置数据库连接

  1. 按照之前的操作,在Dreamweaver中新建一个站点phpweb,站点文件夹设置为xampp\htdocs文件夹下的同名文件夹

  2. 在站点中新建index.php,标题为“PHP动态系统”。随便输入一些内容。

    • 毕业设计 之 二 PHP学习笔记(一)
  3. 选择窗口-数据库选项,右侧出现数据库窗口,单击上图中标为黄色的+,选择“MySQL连接”。名称可以随意,MySQL服务器指定为localhost,用户名和密码是当时安装XAMPP的时候默认的用户名和密码。数据库选择刚刚创建的phpweb数据库

    • 毕业设计 之 二 PHP学习笔记(一)
  4. 单击“测试”按钮。会弹出对话框提示“连接成功”。在数据库栏里会出现之前设置的phpweb数据库

    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)
  5. 打开webconn文件夹下面的webconn.php,可以看到连接代码

    • 毕业设计 之 二 PHP学习笔记(一)

3.检查数据库记录

  1. 何谓“记录集”?

    • 同一个数据库只需要监理一次MySQL连接,然而可以为一个MySQL数据库建立多个“记录集”,每个记录集记录的都是按照某个特定规则从数据库中筛选出来的特定记录。
  2. 这里,我刚开始的时候是没办法点击“绑定”选项的+进行新建的;后来我重新确认了一遍测试服务器,就可以了

  3. 在弹出的对话框中命名连接名称

    • 毕业设计 之 二 PHP学习笔记(一)
  4. 点击右侧“测试”按钮,可以显示所有数据(因为还没有进行筛选)

    • 毕业设计 之 二 PHP学习笔记(一)
  5. 建立记录集之后,操作记录集与直接写SELECT语句是相同的。此时的index.php文件已经被更改。代码如下:

    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)
      • 上面这张图的代码需要琢磨一下。首先是第34行,选择数据库(之前已经连接了),database_webconn被定义在webconn.php文件中
      • 然后查询数据库中所有字段(这个操作放在query_Rsdb变量中),用mysql_query()函数,返回的结果Rsdb是资源标识符,并不能直接输出
      • 第37行将结果一关系型数组的形式传给变量row_Rsdb;这样就可以使用$row_记录集名称['字段名称']来取得记录集字段值
      • 第38行是取得查询结果的记录条数,返回给$totalRows_Rsdb
      • 最后mysql_free_result释放查询结果与占用的内存资源

4.显示记录

  1. 在之前的index.php中选择“插入”--“表格”,然后插入一个2*4的表格

    • 毕业设计 之 二 PHP学习笔记(一)
  2. 在“设计”视图下,找到右侧的“绑定”选项卡,拖动需要的字段到表格中。这里要注意,需要去掉选中的“实时视图”功能才可以(否则无法在“设计”视图中更改表格内容)

    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)
  3. 如果要查看表中所有的记录,方法如下:选中需要重复的区域(对我建的这张表格来说,就是第二行需要重复),然后选中右侧“服务器行为”的“重复区域”功能

  4. 我在弹出的窗口中选择显示全部内容,所以最后出来的就是记录集内的所有数据

    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)
  5. 双击服务器行为,可以更改对应设置

  6. 切换到“代码”页面,可以看到对应的do-while循环

    • 毕业设计 之 二 PHP学习笔记(一)

5.显示记录计数

  1. 在页面上输入“共* 笔记录,目前查看的是第 * 笔——第 * 笔”

  2. 插入点放在*处,在右侧“服务器行为”-“显示记录计数”中依次选择“显示记录总数”、“显示起始记录编号”、“显示结束记录编号”

    • 毕业设计 之 二 PHP学习笔记(一)
  3. 再点“实时视图”确认就可以

6.显示详细信息

  1. ( 其实就是在网页中插入超链接)首先需要新建.php文件,比如detail.php;然后在原来的文件中选中要插入的地方。直接在页面下方的属性选项卡中找到超链接的位置

  2. 这里还要有一个URL值传递的过程。URL参数是随着超链接一起传给detail.php的,用于使得后者在建立记录集的时候筛选所指定的新闻记录,并将新闻的详细记录显示在网页上

    • 毕业设计 之 二 PHP学习笔记(一)
  3. 点击“实时视图”确认之后,效果如下(在windows10自带的浏览器里的效果)

    • 毕业设计 之 二 PHP学习笔记(一)
  4. 对detail.php进行编辑。打开“服务器行为”,选择+中的“记录集(查询)”,设置如下。本质上是对URL传递的参数进行处理。之后打开浏览器访问该页面

    • 毕业设计 之 二 PHP学习笔记(一)
  5. 然后设置如下:

    • 毕业设计 之 二 PHP学习笔记(一)
  6. 访问该页面,是下图所示的状态。如果在URL之后加上?ID=N(N取1--4之间的整数都可以),则会显示该条记录的具体信息(关于“增加/删除”功能在下面的步骤中会进行)

    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)

7.新增记录

  1. 创建空白php页面,命名为add.php。先添加一个表单,再插入表格。对应位置插入文本域

2.创建两个单选按钮(在“插入”--“表单”--“单选按钮”下),标签分别为“提交”和“重置”。二者的属性分别为“提交表单”和“重设表单”;Dreamweaver中的新增、更新记录都是将表单元素的值以POST方式传递给页面,当程序判断到指定字段送出了POST信息,便执行新增、更新记录等部分的程序

- 毕业设计 之 二 PHP学习笔记(一)

  1. 效果如下

    • 毕业设计 之 二 PHP学习笔记(一)
  2. 将文本域的名称依次改为name,age,Result;也就是说,要与记录集字段一一对应。当表单元素的命名与记录集字段相符合的时候,在做“”新增记录“更新记录”的时候,Dreamweaver会自动将表单元素与记录集字段相匹配

  3. 在对应位置做如下操作:

    • 毕业设计 之 二 PHP学习笔记(一)
    • 之前将表单元素命名与数据库字段名称相同设置,所以在建立“插入记录”的时候,Dreamweaver会自动将他们配对。
  4. error!出错了!当我输入了姓名、年龄与成绩之后,并不会跳转到index.php;查询数据库中也没有新增记录。what happened?

    • 我仔细研究了一下书籍记录,发现是因为我把插入的三个文本域错误的理解为了三个form(表单),导致的就是像上图一样,一个网页有三个form,当点击提交的时候,只有最后一个(Result)被提交了,这当然是不完整的,也就无法修改数据库
  5. 重新来一次。先建立form,然后在表单域中建立4*2表格,插入三个文本域,命名为name,age,Result。点击“服务器行为”-“+”-“插入记录”,将form中的值传递给index.php,点击确定之后表格会变成浅绿色

    • 毕业设计 之 二 PHP学习笔记(一)
  6. 效果如下(可以再按住Fn的情况下按F12直接跳转到浏览器)

    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)

8.更新记录

  1. 回到之前的detail.php页面,选中“更新”创建URL连接,参数设置如下,跳转到update.php

  2. 创建update.php,设置如下。注意要把每个文本域设置为对应的名称(ID,name,age,Result)

    • 毕业设计 之 二 PHP学习笔记(一)
  3. 在“服务器行为”中,单击“记录集(查询)”命令,进行如下设置

    • 毕业设计 之 二 PHP学习笔记(一)
  4. 在“绑定”中拖动到表中的对应字段

    • 毕业设计 之 二 PHP学习笔记(一)
  5. 设置ID所在的文本域为“只读”

    • 毕业设计 之 二 PHP学习笔记(一)
  6. 打开“服务器行为”的“更新记录”,设置参数,还是转到“index.php",单击确定

  7. 效果如下

    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)
    • 毕业设计 之 二 PHP学习笔记(一)

参考

  1. 书籍

    • 《PHP+MySQL+DreamWeaver 动态网站开发从入门到精通(第2版)》 陈益材等编著
  2. 网络