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


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

一、环境搭建

1.XAMPP下载安装

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

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

  3. 启动服务。这里遇到了问题,就是Apache服务启动后会遇到错误而停止

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

  5. 再次开启Apache服务,完美

  6. 浏览器里输入localhost:8081,访问XAMPP

2.DreamWeaver下载操作

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

    • 把不必要的安装组件都删去了
  2. 操作流程:

    • 在C:\xampp\htdocs目录下新建php文件夹。然后打开Dreamweaver,“站点”-“管理站点”-“新建”命令,设置站点名称和路径
    • 单击“服务器”选项,添加服务器
    • 保存后,勾选“测试”一栏,然后确定
  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(对大小写不敏感

  2. 选中新建的数据库,在其中建表(字段数为4个,即下面的ID,name,age,result)

  3. 创建字段

  4. 我尝试着在其中插入了四条数据

2.设置数据库连接

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

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

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

  4. 单击“测试”按钮。会弹出对话框提示“连接成功”。在数据库栏里会出现之前设置的phpweb数据库

  5. 打开webconn文件夹下面的webconn.php,可以看到连接代码

3.检查数据库记录

  1. 何谓“记录集”?

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

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

  4. 点击右侧“测试”按钮,可以显示所有数据(因为还没有进行筛选)

  5. 建立记录集之后,操作记录集与直接写SELECT语句是相同的。此时的index.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的表格

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

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

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

  5. 双击服务器行为,可以更改对应设置

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

5.显示记录计数

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

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

  3. 再点“实时视图”确认就可以

6.显示详细信息

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

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

  3. 点击“实时视图”确认之后,效果如下(在windows10自带的浏览器里的效果)

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

  5. 然后设置如下:

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

7.新增记录

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

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

-

  1. 效果如下

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

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

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

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

  6. 效果如下(可以再按住Fn的情况下按F12直接跳转到浏览器)

8.更新记录

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

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

  3. 在“服务器行为”中,单击“记录集(查询)”命令,进行如下设置

  4. 在“绑定”中拖动到表中的对应字段

  5. 设置ID所在的文本域为“只读”

  6. 打开“服务器行为”的“更新记录”,设置参数,还是转到“index.php",单击确定

  7. 效果如下

参考

  1. 书籍

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

毕业设计 之 二 PHP学习笔记(一)的更多相关文章

  1. 《Linux内核设计与实现》 第一二章学习笔记

    <Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...

  2. 《Linux内核设计与实现》第一、二章学习笔记

    <Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡  学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...

  3. VBA二次学习笔记(1)——文件操作

    说明(2018-9-1 11:20:46): 1. 上班三个月了,累的一逼,真的是钱少事多离家远,每天早上六点起,晚上八点回.哎,少壮不努力啊! 2. 三个月没写博客了,上一篇已经是5.29的了,真的 ...

  4. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

  5. 《java编程思想(第四版)》第一二章学习笔记

    目录 一.Introduction 1.抽象过程 2.面向对象语言(包括Java)的五个基本特性 3.每个对象都提供服务 4.public.private.protected三者的区别 5.Java的 ...

  6. Go语言核心36讲(Go语言实战与应用二)--学习笔记

    24 | 测试的基本规则和流程(下) Go 语言是一门很重视程序测试的编程语言,所以在上一篇中,我与你再三强调了程序测试的重要性,同时,也介绍了关于go test命令的基本规则和主要流程的内容.今天我 ...

  7. 《Linux命令行与shell脚本编程大全》 第一、二章 学习笔记

    第一章:初识Linux shell Linux内核负责以下4个主要功能: 1.系统内存管理 2.软件程序管理 3.硬件设备管理 4.文件系统管理 1.系统内存管理 内核不仅管理服务器上的可用物理内存, ...

  8. 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记

    第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...

  9. 《Linux内核设计与实现》 第一、二章学习笔记

    第一章 Linux内核简介 一.Unix 1.Unix的特点 简洁 绝大部分东西都被当做文件对待.这种抽象使对数据和对设备的操作都是通过一套相同的系统调用借口来进行的:open(),read(),wr ...

随机推荐

  1. 模拟搭建Web项目的真实运行环境(一)

    序言 最近尝试完整搭建一个Web项目的运行环境,总结一下这几个月学到的知识点. 后面的文章主要包括一下几个内容: A. 搭建一个Linux服务器,用来部署Redis.Mongo等数据存储环境: B. ...

  2. winform 多个label绑定一个事件

    1当多个label帮到到一个事件后 private void jiandao_Click(object sender, EventArgs e) { //sender显示的是窗体上接受事件的label ...

  3. 对DIP IoC DI的理解与运用

    DIP,IoC,DI基本概念 依赖倒置原则(DIP,Dependency Inverse Principle):强调系统的“高层组件”不应当依赖于“底层组件”,并且不论是“高层组件”还是“底层组件”都 ...

  4. 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计

    ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...

  5. malloc与new的区别

    1.new是运算符,而malloc是库函数 2.new可以重载,可以自定义内存分配策略,甚至不做内存分配,甚至分配到非内存设备上.而malloc不能. 3.new在用于定义一个新的非内部对象的时候,默 ...

  6. 解决SVN Upgrade working copy问题

    解决SVN Upgrade working copy,无法上传到svn上的解决方案是SVN Upgrade working copy老有问题,而且还特别慢.还有种方法,将原来上传到svn的项目中有个. ...

  7. Hadoop Linux安装

    Hadoop Linux安装 步骤流程 1.硬件准备 2.软件准备(推荐CDH) 3.将Hadoop安装包分发到各个节点下 4.安装JDK 5.修改/etc/hosts配置文件 6.设置SSH免密码登 ...

  8. eclipse快捷键积累(持续更新)

    大小写转换:Ctrl+Shift+X;Ctrl+Shift+Y; 打开资源:Ctrl+Shift+R; 打开类型:Ctrl+Shift+T; 调试时查看对象.变量:Ctrl+Shift+I; 打开函数 ...

  9. NoSQL-Redis【2】-HDEL给我的一个惊喜

    用HDEL删除Hash最后一个域的时候,Redis奇迹般的帮我清除了Key,真是考虑周到啊! 127.0.0.1:6673[2]> HMSET USER:Zhangshan Name 'Zhan ...

  10. Unity Standard Assets 简介之 Vehicles

    这篇介绍载具资源包Vehicles. 主要包含Aircraft(飞行器)和Car(车辆)两部分,两个文件夹里分别有AircraftGuidelines.txt和CarGuidelines.txt对相关 ...