控制器的方法, 要显示的模板默认的跟方法名相同. 也可以不同, 但应该 仍然是对应文件夹下的html模板文件:

$this->display('其他的模板html文件名, 不用加html扩展名');

在windows图形界面下, 可以支持 "/" 和 ""两种路径分隔符, 但是在cmd下, 只能用 ""

wamp包括: Apache2, php, mysql , logs lang, www等文件夹, 和一些可执行文件, 如wampserver.exe等

一般情况下, 建议都使用mysql的控制台, 只有特殊情况下才用web可视化视图管理.

mysql的控制台文件: c:\wamp\mysql\bin\mysql.exe

可以设置控制台的属性, 如窗口宽度=110, "保存属性, 供以后 具有相同标题 "C:\wamp\mysql\bin\mysql.exe" 的窗口使用!"

mysql数据库: use db_name; //指的是你要使用哪一个数据库

/--------------------------------/

mysql控制台常用 命令

  1. 显示命令: (显示所有的数据库和 某个库中的所有表)

    show databasees;

    show tables

    // 注意, 两个显示都要用 复数! 因为是显示所有的数据库 或所有的表. 不是特指哪一个...

    // 提示, mysql好像也是用c语言写的, 所以他的命令, 也要求用分号; 结束.

  2. 修改表

    alter table table_name //(alter语句)

    /*------------------

  • 特别注意的是: mysql里面(或者说这个5.0.45的版本) 跟sql server有所不同, 里面都不加 关键字 column!

    ------------------/

    add column_name datatype;

    drop column_name;

    change column_name column_name datatype; (是change, 不是alter!)

// 在sql语句中, 要养成 加反引号的习惯: 给 数据库/表/字段 名称加上反引号, 跟其他字段和关键字相区别 !!

字段名也可以 在任何时候 都加上 反引号! 包括insert select语句中的where 子句中的字段名也可以加反引号.

  1. 查看表的结构:
    describe foo_table;
// 好像就只有这个命令 关键字可以简写为: desc;
  1. 给mysql服务器设置 user用户root密码后, 无法登陆服务器, 错误error 1130?
/* 好像是 很严重的问题, 设置root密码后, 控制台和phpMyAdmin都不能登陆
* error 1130: the host "localhost" is not allowed to connect to the Mysql Server
*****/ # Solve 1130 error:
skip-name-resolve
skip-grant-tables
  1. 连接mysql服务器及数据库等命令:

    连接:

    mysql -uroot -p123; // 本机上的mysql

    // -u指定用户, -p指定密码, 中间可以加空格也可以不加空格

    连接 远程服务器, 非本地机器, 需要指定 -h localhost

// 也可以修改 "mysql" 数据库中的 "user" 表, 里面的Host字段值为 "%".

// 百分号就表示 百分百的可以连接, 允许远程客户端 连接mysql服务器

update mysql.user
set Host='%'
where User='root';

要修改mysql服务器上的用户密码, 主要还是通过 phpMyAdmin来实现,

用update语句

update mysql.user
set password='root'
where User='root';
  1. mysql的服务名是?

    用wamp安装的mysqld的服务名称不是: mysqld, 而是 wampmysqld.

===========================================================

对于列表, 可以使用图标进行形象化:  /* iconic view for ul items */
li#database {
list-style-image: url('...');
list-style-type: circle(圆, 环,是空心的)/disc(圆盘,唱片, 是实心的)/还可以是任意的罗马/希腊等数字字母 }

最需要注意的是: list-style-type是 仅仅针对 列表的li 而言的, 而不管这个li是在ul还是ol中!

ul同样可以使用数字,字母来列序, ol同样也可以使用 circle,disc, square等等来列序.

也就说, ul/ol都可以通过css style 使用相同的数字/图形化的列表符.

列表项目标志 : 的位置: 有inside/outside, 默认的是outside.

inside: 项目标志放在列表项的内容里面, 列表内容根据标志来对齐.

outside: 项目列表标志 放在列表项的内容外面, 不根据标志对齐.

////// 注: 通过 给列表内容加上 边框 就可以看得很清楚了.

当给每个列表项加上边框的时候, 中间相邻的边框看起来 宽度就会加粗, 等于原本边框的2倍, 这时可以添加一个类,让它们的

下边框宽度等于0:

ol .no-bottom {

border-bottom-width: 0;

}

==========================================

有时候, 看到横着的一条 分割线?

分割线不一定都是


有时候, 有时候可以 利用 border-top 或者 border-bottom来实现, 而且还可以用 margin-top

margin-bottom来调整相邻元素的垂直距离等等

==========================================================

两个div 水平并列的css设置:

需要: 它们: float: left; width:49%. // 为了准确起见, 不用 刚好设置成 50%, 留一点空西 更安全!

=====================================================================

css中的 相对尺寸?

通常在css中 , 要表示更大/更小的尺寸, 通常/最好/推荐 使用 百分比, 而不是使用具体的 写死的数值

如: font-size: 120%,

在 "需要自适应 宽度/高度" 的时候, 也推荐使用 百分比来写! 如上面的width: 49%

=============================================================================

css中的background-image?

  1. background-image中的url地址可以不用 引号: 如: background-image: url(./img/xxx.png);

  2. background-repeat表示是否重复: 默认的是repeat都重复: 共有4种: repeat, repeat-x, repeat-y, no-repeat.都是以repeat开始打头的;

  3. background-position: 是说背景图像的起始位置, 两种理解都可以:

    a. 包围背景图像构成的方框/ 盒子的左上角 的坐标;

    b. 或者说是: 包围背景图像构成的方框/ 盒子, 离容器的左边距离和 离容器的上边的距离.

    这两种说法都是可以的, 注意都是 以 容器的盒子的 左上角的坐标 为(0,0) 或(0%, 0%).

    background-position的指定方法有3种: 

    a 关键字法: 垂直方向top center bottom 水平方向 left center right. 注意两个方向上 居中都是center

    b 百分比法: 0%, 0%左上角, 100% , 100%右下角

    c 数值法: 0px, 0px, ....

    指定时, 可以用百分比法和数值法混用.

    如只指定一个值, 则第二个值将 默认为: center 或者为 50%. 即垂直方向居中布局.

如果指定了background-image的位置后, 由于background-image本身占用一定的位置(包括水平的/垂直的), 因此, 要使后面的

文字内容等, 要保持较好的布局时, 通常: ""background-position""属性 应该和 padding: 相搭配使用, 利用padding-left将

背景图片的位置给 腾出来!!

background-attachment: 规定图片在屏幕上的付着关系.

默认的是scroll, 滚动, 背景图片跟随 其他内容的滚动而滚动, 这个也是绝大多数情况下的值.

fixed, 固定, 那么背景图片固定在桌面上, 不会随其他内容的滚动而滚动, 不随垂直/水平滚动条的滚动而移动! 这个一般不用.


写css 时, 如果能够将 一个规则的 多个子规则合起来写的, 就尽量合起来写! 这样更简洁. 可以说这也是一种风格和习惯!


mysql的 日期和时间 类型

  1. mysql中的select就是输出, 选择...的意思, 相当于其他语言中的 print, echo等等.
  2. date是日期年月日, time是时间HH:MM:SS. 同时获取 date+time的函数是: now();

列类型 需要的存储量

DATE 3 个字节(yyyy-mm-dd)

TIME 3 个字节(hh:ii:ss)

datetime 4个字节(yyyy-mm-dd hh:ii:ss) // 是日期和时间的组合

YEAR 1 字节

TIMESTAMP 4 个字节

DATETIME 8 个字节

================= ====================

mysql中的null与空值?

在mysql中, 不区分大小写,字段名和函数都不区分大小写, 因为mysql引擎最后都会转换为全部大写!

所以, null=Null=NULL

注意null不是 "空" :真的空, 如同 杯子放在真空中, 确实什么都没有, 不占存储空间, 用 空的引号来表示空值: '', "".!!!

而null是 如同" 杯子放在空气中" , 是要占1个字节的空间的.

注意: 在命令行和phpMyadmin图形界面 还是有区别的! 它们使用的一些命令都是不同的, 要记忆命令行的!

mysql定义表, 字段 采用的是 一种 自然语言 描述性的 语法, 直接书写:

alter table foo
change `col1` `col1` int unsigned auto_increment; (一般不写这个not null, 因为auto_increment字段的默认值就是null); // unsigned 表示大于等于0, 不能为负数, 注意的是: "int 等数字类型的字段, 不能指定字符集 和 collate? )!!!"
// "非数字类型如 char, varchar等 类型 的字段, 才能指定字符集 和 collate? )!!!" // 以后写字符集都统一写成 utf8, 后面的collate(校对, 不是collation)是 utf8_gerneral_ci( 不是generic)

not null的允许取值是: 'abc有具体的实在的内容...', 或者为空值 '', "".

=================================================

  • 即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。

如果某个字段的值为'', 那么判断该字段值 <>'', 和is not null的结果是不同的:

select * from foo where bar is not null; 这时包含该字段值的行会被返回;

select * from foo where bar <> '' // 这时 包含该字段值的行不会被返回


使用phpmyadmin跟mysql控制台还是有区别的,

比如在insert时, 如果某个字段not null类型, 你不输入, phpmyadmin会自动给你加上空值'' 或id的NULL

而用控制台, 则必须显式的输入NUll, 空值''.

INSERT INTO `test`.`foo` (
`id` ,
`name` ,
`col1` ,
`col2`
)
VALUES (
NULL , '', '', NOW( )
);

在对数据库的表 进行 增删改查的时候, 可以允许, 同时进行多个相同的操作:

// 插入的时候, 将多个要插入的数据集 用括号括起来, 用逗号隔开就可以

insert foo values(NULL, '', ''), (Null, 'abc', '123'),(...);

// 删改的时候, 就写多个同样的子句, 用逗号隔开:

alter table foo

drop col1,

drop col2;

alter table phper

change col1 col1 ....,

change col2 col2 ....;

==============================================

因为一般字段都会设计为 not null, 同时为了避免在插入记录时 的问题, 都会设置默认值: default '';

mysql的语句都是"自然语言". 在创建表foo时, foo(字段记录描述)+ 接着 其他特征描述, 如: engine myisam default charset utf8;

如何选择mysql的存储引擎?

主要有myisam, 和 innodb

一般来说:

  • myisam的适合场景: 默认存储引擎, 小项目, 小规模数据, 增删改查速度块(读写高性能), 支持全文索引fulltext, 获得count(*)快, 因为该引擎中直接就有这个数据. 所以一般在小项目, 小demo中都是使用myisam.

  • innodb的适合场景: 大项目, 大数据, 高并发, 需要事务(资金交易), 存储过程, 外键支持, 故障检测和数据恢复要求高的.

count()操作对InnoDB很慢, 因为他要扫描整个表, 才能得到记录数...*

create table时, 有些描述可以有多种写法, 如: character set utf8, 也可以写为: charset utf8, 又如: engine=myisam, 也可以

写为 engine myisam.

在实际开发的时候, 对数据库的操作, 要先做自定义配置, 在项目的 Conf下配置:'DB_HOST' 'DB_PREFIX'等等.

thinkphp的url方法: U('Index/index');

可以通过在配置文件config.php的配置项来统一的修改

'URL_MODEL' => 0(传统的index.php?m=Index&a=index),
=> 1(pathinfo模式, index.php/Index/index)
=> 2(apache模式, 省略index.php...)

//// 推荐使用, 约定用法, 要有自己的 程序员习惯...

thinkphp中的 p方法:

function p($array) {
dump($array, 1, '<pre>',0);
}
// 1: 是否输出
// '<pre>'预加标签
// 0: 表示用print_r来打印

thinkphp的伪静态?

在配置config.php中设置:

'URL_HTML_SUFFIX' => 'html' 或者为'' // html可以是任意的, 如Php, asp, 一般用html对seo有好处,

thinkphp的U方法的参数:

U('地址如: Index/index', 传递给地址的参数array('user'=>'???', 'passwd'=>'???'), '伪静态的扩展名', '是否跳转','是否显示域名');

一般只用到前两个参数.

在form表单中使用控制器中的U方法传递地址?

<form action="{: U['当前控制器名称/] handle处理方法名称}" method="post"> ....</form>
在模板中的 {}, 就相当于 <?php .... ?>
在模板中的冒号: , 就相当于 echo 语句.

控制不能通过地址直接访问提交页面? 有两种方法?

  • 可以用thinkphp的常量: IS_POST

  • 可以用方法: $this->isPost();

  • 错误处理方法有: _404方法和halt方法:

        _404('错误提示信息/只有在调试模式下才显示', U('index')跳转地址);
    halt('错误提示信息');
    // _404方法本身就直接返回了, 其后不用再加return

thinkphp中获取 从前台 通过post方法 提交过来的表单 的内容 有三种方法

  • 传统的$_POST['xxx'];
  • 使用 $this -> _post('xxx'); // 使用thinkphp提供的 _post方法
  • 使用新的 I方法: I('xxx'); // 好像也可以用于get方法提交过来的表单内容, 原来的用法是: I('post.username'), 可以直接就用: I('username').

// _post('xxx');方法, 默认的进行了 htmlspecialchars()函数进行了html实体化处理

// I('xxx', '为空时的默认值', 'htmlspecialchars附加的处理方法');

要获得全部的post表单, 使用 : I('post.')

thinkphp- 许愿墙-1的更多相关文章

  1. CentOS系统中基于Apache+php+mysql的许愿墙网站的搭建

    1.首先,我们需要两台虚拟机(CentOS7,Linux文本). 2.给两台虚拟机配置网络环境分别为桥接模式 CentOS7 ip为192.168.100.139.24,linux文本ip为192.1 ...

  2. 基于Apache+php+mysql的许愿墙网站的搭建create database xyq; //创建xyq数据库

    1.准备CentOS7与CentOS5的基础配置 2.在两台虚拟机中配置yum. 3.在CentOS7中安装httpd与php与php-mysql PS:截图时已安装 CentOS7 关闭防火墙与se ...

  3. 【jquery】jquery 实现许愿墙效果,可拖拽

    最近整理做过的项目,发现有个许愿墙的效果,今天拿出来给大家分享下. 先简单的介绍下功能点: 随机显示背景图或背景色 出现的位置随机 可以通过拖拽改变位置 好了,附上代码: <!doctype h ...

  4. 许愿墙的搭建基于mysql

    首先需要两个服务器(也可以用一台,但不推荐) 1服务器用yum安装Apache+php+php-mysql 2服务器用yum安装mysql 1服务器 用yum安装Apache和php+php-mysq ...

  5. 许愿墙的搭建(基于Apache+php+mysql)

    一.准备部分:CentOS 7  , Linux 文本   各自配置好环境 二. CentOS 7准备如下: yum install httpd -y #安装httpd yum install php ...

  6. linux 搭建php网站许愿墙

    网站素材在:https://i.cnblogs.com/Files.aspx 首先需要搭建本地yum源,详情参考: http://www.cnblogs.com/jw35/p/5967677.html ...

  7. 许愿墙JQ

    <!doctype html> <html> <head>     <meta charset="utf-8">     <t ...

  8. thinkphp学习笔记13-15集

    13集: ThinkPHP3.1.3使用视频教程--后台登录验证与自动运行方法_标清.flv 14集: ThinkPHP3.1.3使用视频教程--自定义SESSION处理DB驱动与添加Redis处理驱 ...

  9. [转载]jquery版小型婚礼(可动态添加祝福语)

    原文链接:http://www.cnblogs.com/tattoo/p/3788019.html 前两天在网上不小心看到“js许愿墙”这几个字,我的神经就全部被调动了.然后就开始我 的百度生涯,一直 ...

  10. jquery版小型婚礼(可动态添加祝福语)

    前两天在网上不小心看到“js许愿墙”这几个字,我的神经就全部被调动了.然后就开始我的百度生涯,一直寻觅许愿墙背景图片和便利贴图片,觅了好久……一直没找到满意的……无意间看到祝福语和一些卡通婚礼图片.最 ...

随机推荐

  1. 【poj3084】 Panic Room

    http://poj.org/problem?id=3084 (题目链接) 题意 一个房子里面有m个房间,一些房间之间有门相连,而门的开关只在一个房间有,也就是说只有一个房间可以控制该扇门的开关.现在 ...

  2. 【bzoj2006】 NOI2010—超级钢琴

    http://www.lydsy.com/JudgeOnline/problem.php?id=2006 (题目链接) 题意 给出一个数列,在其中选出K个长度在${[L,R]}$之间的不同的区间,使得 ...

  3. iOS 采用个推时,未收到推送消息,测试DeviceToken无效

    一般在调试时我们使用任何boundleID,即为*的profile文件 但在使用推送后进行调试,除了创建和上传APN证书,还需要重新生成 (1)特定程序的BoundleID (2)包含Push Not ...

  4. 使用Guava来计算笛卡尔积

    以前做项目的时候计算笛卡尔积的时候,总是使用各种for循环来嵌套,最后往往在Sonar代码检查的时候总是会报警说for循环嵌套过深. 今天才知道Guava原来已经为我们提供了优雅的计算笛卡尔积的方法. ...

  5. A.Kaw矩阵代数初步学习笔记 7. LU Decomposition

    “矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...

  6. Codeforces 711E ZS and The Birthday Paradox

    传送门 time limit per test 2 seconds memory limit per test 256 megabytes input standard input output st ...

  7. CF 213A Game(拓扑排序)

    传送门 Description Furik and Rubik love playing computer games. Furik has recently found a new game tha ...

  8. POJ 2528 Mayor's posters(线段树/区间更新 离散化)

    题目链接: 传送门 Mayor's posters Time Limit: 1000MS     Memory Limit: 65536K Description The citizens of By ...

  9. 《JavaScript权威指南》学习笔记 第三天 找个对象

    现实生活中真的对象没有找到,在JavaScript 里左一个对象又一个对象,搞的我也是晕晕乎乎不知所云.人事复杂,人心难懂.我虽然是文科生,但是也不善于巧言.还是在js里面找找对象吧.那么我们今天就从 ...

  10. Java 序列化Serializable接口

    1 什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程. 2  什么情况下需要 ...