毕业设计 之 二 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集成环境(Dreamweaver)使用的更多相关文章

  1. Spring Boot (二)集成Jsp与生产环境部署

    一.简介 提起Java不得不说的一个开发场景就是Web开发,也是Java最热门的开发场景之一,说到Web开发绕不开的一个技术就是JSP,因为目前市面上仍有很多的公司在使用JSP,所以本文就来介绍一下S ...

  2. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  3. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...

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

    毕业设计 之 二 PHP学习笔记(一) 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 一.环境搭建 1.XAMPP下载安装 XAMPP是PHP.MySQL ...

  5. linux下搭建php的集成环境

    一个偶然的机会,在项目中需要搭建PHP的环境,由于PHP开发需要的东西比较多,像apache.mysql.PHP环境等,如果一个一个装很可能会有安装不全的问题,为此选择了安装集成环境,这里选择的是xa ...

  6. php7+apache2.4 (Windows7下),成功启动。(楼主另外提供了1个php7集成环境打包: http://pan.baidu.com/s/1qXwjpF2 ,如果你只是想了解一下,放在d盘根目录。)

    php7正式版已经发布,性能是php5.4的2倍.博主入手php7 新鲜了一把,下面是解决问题之后成功启动php7的记录. ( 电脑必须win7 sp1, .netframework4 ) Windo ...

  7. Jenkins+Maven+SVN快速搭建持续集成环境(转)

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面看看我们是如何几分钟就快速搭建一个持续集成环境吧. 假设我们目前已经有2个maven项目:entities(J ...

  8. Linux-Apache+Mysql+PHP+PHPWind(重点Apache+PHP集成环境)

    整理Apache+Mysql+PHP+PHPWind(Apache+PHP集成环境) 一.情况简述: 1.虚拟机VM上面CentOS 2.全部yum安装(yum安装与源码安装的安装路径不同) 二.操作 ...

  9. 用MSBuild和Jenkins搭建持续集成环境(2)

    http://www.infoq.com/cn/articles/MSBuild-2   作者 Mustafa Saeed Haji Ali ,译者 李剑 发布于 2012年10月23日 | 注意:  ...

随机推荐

  1. Instruments模板介绍(更新中...)

    第一章.Instruments(仪器)快速入门 Instruments可以用来收集关于一个或者多个系统进程的性能和行为的数据,并跟踪睡着时间产生的数据.它提供了好几个分析模板: Blank 任何类型都 ...

  2. call()和apply()

    call()和apply()方法类似,区别是,call()方法接受的是若干个参数的列表,而apply()方法接受的是一个包含多个参数的数组. 当一个函数在其主体中使用 this 关键字时,可以通过使用 ...

  3. Properties集合_修改配置信息

    集合中的数据来自于一个文件  注意:必须要保证该文件中的数据是键值对.  需要使用到读取流 使用load()方法读取已有文件中的数据,存储到Properties集合中 public class Pro ...

  4. Java程序在Linux上运行虚拟内存耗用很大

    突然集群的2个节点挂了,通过top查看, 虚拟内存22G, 通过 pmap -x 8 | grep anon 一大堆64M Linux下glibc的内存管理机制用了一个很奇妙的东西,叫arena.在g ...

  5. (转)web.xml中的contextConfigLocation在spring中的作用

    (转)web.xml中的contextConfigLocation在spring中的作用   一.Spring如何使用多个xml配置文件 1.在web.xml中定义contextConfigLocat ...

  6. slf4j+logback搭建超实用的日志管理模块

    文章转自http://www.2cto.com/kf/201702/536097.html slf4j+logback搭建超实用的日志管理模块(对日志有编号管理):日志功能在服务器端再常见不过了,我们 ...

  7. VsCode源码编译运行

    参考链接官方文档:https://github.com/Microsoft/vscode/wiki/How-to-Contribute 一.准备环境 Git Node.js(64位,>= 8.1 ...

  8. Android逆向学习资料

    Android逆向基础之Dalvik虚拟机: https://lyxw.github.io/archivers/Android%E9%80%86%E5%90%91%E5%9F%BA%E7%A1%80% ...

  9. node.js 基础三 消息推送

  10. docker load导入镜像报错:open /var/lib/docker/tmp/docker-import-970689518/bin/json: no such file or directory

    今天将之前打包好的mysql5.7.19的tar包通过docker load命令导入到Docker环境中却报出了如下错误: [root@host---- task]# docker load < ...