legend---二、如何降低编程复杂度

一、总结

一句话总结:配置文件,数据库

个性的东西可以一起写入数据库,那么编程复杂度会大幅降低,页面灵活度也大幅降低(特有属性写进数据库)

比如不同难度的颜色
不仅是数据,写进配置文件更加方便,而且方便非常多

1、input-number-max和min如何使用?

<input type="number" class="tpl-form-input" name="msstar" id="msstar" min="0" max="10" placeholder="自身技能星数" >

2、如何通过jquery获取元素的id属性(sttr表属性)?

$("input[name='tisaccept']").attr('id');

3、想把多个按钮放在一行(不懂时看参考手册,不要自己臆断浪费时间)如何实现?

多看参考手册,所以你会发现是am-btn-group   把一系列要使用的 .am-btn 按钮放入 .am-btn-group 。

4、这种按钮怎么摆都不好看的情况下我们应该怎么办?

这种按钮怎么摆都不好看的情况下,所以可以尝试别的策略(策略转换)

这种 按钮怎么摆都不好看的情况下,所以可以尝试别的策略

5、php中单引号能解析变量么?

php中单引号不能解析变量

1 $taskData['tdeadlinetime']=strtotime("$timeStr");

6、php计算两个时间相差的天数、小时数、分钟数、秒数(善于百度)如何实现?

PHP中计算两个时间相差的天数、小时数、分钟数、秒数不如其它语言方便,但搞清了PHP中时间的表示方法后也很简单。本文章向大家讲解php如何计算时间相差。需要的码农可以参考一下。

 1 //$startdate是开始时间,$enddate是结束时间
2 <?php
3 $startdate="2011-3-15 11:50:00";
4
5 $enddate="2012-12-12 12:12:12";
6
7 $date=floor((strtotime($enddate)-strtotime($startdate))/86400);
8 echo "相差天数:".$date."天<br/><br/>";
9
10 $hour=floor((strtotime($enddate)-strtotime($startdate))%86400/3600);
11 echo "相差小时数:".$hour."小时<br/><br/>";
12
13 $minute=floor((strtotime($enddate)-strtotime($startdate))%86400/60);
14 echo "相差分钟数:".$minute."分钟<br/><br/>";
15
16 $second=floor((strtotime($enddate)-strtotime($startdate))%86400%60);
17 echo "相差秒数:".$second."秒";
18 ?>

不管是自己使用字符串来构造的时间类型(使用strtotime转换而来的)也好,还是直接使用系统的time函数得到的时间类型也好,最终其实都是长整形的一个变量。两个这样的变量,就很明显可以做减法了。

做减法得到值是相差的秒数,这个秒数对86400(一天的秒数)取余,则得到相差数。如果对86400取模,还对3600秒、60秒取余,则得到相关的小时和分钟数。如果对86400取模,再对60取模,则得到相差的秒数。

7、数据库的数据表的字段设计格式可以是什么?

数据库数据表字段加下划线

mst_id可以区别  ms表里面的tid

8、绝对定位好用么?

绝对定位啊。真好用

1 <td colspan="4">
2 EXP.
3 <span style="margin-left: 3px;">
4 <div style="display: inline-block;position: absolute;font-size: 14px;">34242</div>
5 <progress max="10000" value="3455" style="width: 90%;"></progress>
6 </span>
7 </td>

9、order by(直接传入数据库的字段,因为是字符串,都加单引号)如何使用?

Db::table('think_user')->where('status=1')->order('id desc,status')->limit(5)->select(); 根据---id“降序",status "升序" 排列
SELECT * FROM think_user where status=1 ORDER BY id desc,status 【asc】 limit 5 ; Db::table('think_user')->where('status=1')->order('id,status desc')->limit(5)->select(); 根据---id“升序",status "降序" 排列
SELECT * FROM think_user where status=1 ORDER BY id 【asc】,status desc limit 5 ;

10、竖线|一般表示什么意思?

竖线|表或者,太多都是的了(竖线表或者,thinkphp中的验证器,以及其它很多地方)

 1 <?php
2 namespace app\admin\validate;
3
4 use think\Validate;
5 class ShopGoods extends Validate
6 {
7 protected $rule = [
8 'sg_name' => 'require|max:25|unique:cate',
9 ];
10
11 protected $message = [
12 'catename.require' => '栏目名称必须填写',
13 'catename.max' => '栏目名称最多不能超过25个字符',
14 'catename.unique' => '栏目名称已经存在',
15 ];
16
17
18 protected $scene = [
19 'add' => ['catename'=>'require|unique:cate'],
20 'edit' => ['catename'=>'require|unique:cate'],
21 ];
22
23 }

11、列表如何分类显示?

(先按分类排序,再按星级排序, 最后按照id排序)

$shopGoodss=db('shop_goods')->alias('sg')->field('sg.*,sc.sc_name')->order('sg_classifyid,sg_id asc')->join('shop_classify sc','sg.sg_classifyid=sc.sc_id','LEFT')->paginate(10);
order('sg_classifyid,sg_id asc')

后id

12、select控件的选择改变事件有哪些?

select的onchange事件

 1 <div class="am-u-sm-12 am-u-md-3">
2 <div class="am-form-group">
3 <select data-am-selected="{btnSize: 'sm'}" onchange="javascript:location.href=this.value;">
4 <option {if condition="$id lt 1"} selected="" {/if} value="{:url('article/index',array('id'=>0))}">All topic</option>
5
6 {volist name="dataout" id="vo"}
7 <option {if condition="$vo['id'] eq $id"} selected="" {/if} value="{:url('article/index',array('id'=>$vo.id))}">{$vo.name}</option>
8 {/volist}
9
10 </select>
11 </div>
12 </div>

13、thinkphp数组get方式如何传值?

(不是传统的问号方式,是url里面的数组方式)

<option value="{:url('shop_goods/index',array('sc_id'=>0))}">所有分类</option>

一定要好好分析区别传统方式

14、where条件如何使用?

(php中的变量任何时候不要加上单引号)

if($id) $data=db('article')->alias('a')->join('user u','u.id=a.authorid')->field('u.picture as pic1,a.picture,username,title,a.id,authorid,keywords,content,click,state,time,place,topicid')->where(array('topicid'=>$id))->paginate(3);

这里错了,变量上不要加引号

where('sg.sg_classifyid','=','$sc_id')

15、双引号里面解析变量么?

解析

$this->success('增加物品成功!!',url('shop_goods/index',"sc_id=$sc_id"));

16、页面中访问和在控制器中访问的url书写形式相同么?

页面中访问和在控制器中访问的url书写形式的不同(页面中的函数使用加{:},这个好)

控制器中

$this->success('增加物品成功!!',url('shop_goods/index',"sc_id=$sc_id"));

17、传参用什么方式好?

数组写参数真好,多参数传递的时候

<a href="{:url('shop_goods/edit',array('id'=>$vo.sg_id,'sc_id'=>$sc_id))}"

18、如何给方法属性等命名(超超超级重要)?

控制器里面传出去的变量,要以控制器名加_下划线作为前缀来命名

比如,base控制器:base_stateData

比如,myselfBody控制器:mbody_

控制器命名:所属模块名自己

比如 myself(自身管理)板块下的body(身体管理):MyselfBody

数据库字段命名是  模块名首字母加  内容名,比如:lg_myself_own:mo_id

 

19、编程中随时关闭干扰文件的好处是什么?

关闭其它,排除干扰

做这个控制器的时候一定要关闭其他控制器,不然太容易弄错了
 
 

20、如何降低编程复杂度?

个性的东西可以一起写入数据库,那么编程复杂度会大幅降低,页面灵活度也大幅降低(特有属性写进数据库)

比如不同难度的颜色
 
 
 

二、内容在总结中

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

legend---二、如何降低编程复杂度的更多相关文章

  1. 《Data-Intensive Text Processing with mapReduce》读书笔记之二:mapreduce编程、框架及运行

    搜狐视频的屌丝男士第二季大结局了,惊现波多野老师,怀揣着无比鸡冻的心情啊,可惜随着剧情的推进发展,并没有出现期待中的屌丝奇遇,大鹏还是没敢冲破尺度的界线.想百度些种子吧,又不想让电脑留下污点证据,要知 ...

  2. [CSAPP笔记][第十二章并发编程]

    第十二章 并发编程 如果逻辑控制流在时间上是重叠,那么它们就是并发的(concurrent).这种常见的现象称为并发(concurrency). 硬件异常处理程序,进程和Unix信号处理程序都是大家熟 ...

  3. CSAPP:第十二章 并发编程

    CSAPP:第十二章 并发编程 12.1 线程执行模型12.2 多线程之间并发通信12.3 其他并发问题   使用应用级并发的应用程序称为并发程序.现代操作系统提供三种基本的构造并发程序的方法: 进程 ...

  4. Shell脚本系列教程二: 开始Shell编程

    Shell脚本系列教程二: 开始Shell编程 2.1 如何写shell script? (1) 最常用的是使用vi或者mcedit来编写shell脚本, 但是你也可以使用任何你喜欢的编辑器; (2) ...

  5. 二、并行编程 - Task任务

    任务,基于线程池.其使我们对并行编程变得更简单,且不用关心底层是怎么实现的.System.Threading.Tasks.Task类是Task Programming Library(TPL)中最核心 ...

  6. python3--算法基础:二维数组转90度

    python3--算法基础:二维数组转90度 [0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3] 二维数组转90度 [0, 0, 0, 0][1, 1, ...

  7. 亿级在线系统二三事-网络编程/RPC框架 原创: johntech 火丁笔记 今天

    亿级在线系统二三事-网络编程/RPC框架 原创: johntech 火丁笔记 今天

  8. Java 面试知识点解析(二)——高并发编程篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  9. C#网络编程二:Socket编程

    一:什么是SOCKET socket的英文原义是"孔"或"插座".作为进程通信机制,取后一种意思.通常也称作"套接字",用于描述IP地址和端 ...

随机推荐

  1. omi-mp-create源码加注

    omi-mp-create是dntzhang写的小程序框架,主要功能是实现全局状态自动更新和页面间通信,传送门. 代码虽然简单但是注释不多读起来还是需要一点时间理解,因此在上面加入了个人理解的注释方便 ...

  2. sort排序到底怎么排序

    sort()方法 sort() 方法在适当的位置对数组的元素进行排序,并返回数组. <!DOCTYPE html> <html> <head> <meta c ...

  3. 做一个可复用的 echarts-vue 组件(延迟动画加载)

    在 vue 项目使用 echarts 的场景中,以下三点不容忽视:1. 可视化的数据往往是异步加载的:2. 若一个页面存在大量的图表( 尤其当存在关系图和地图时 ),往往会导致该页面的渲染速度很慢并可 ...

  4. 洛谷 P1332 血色先锋队

    P1332 血色先锋队 题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重 ...

  5. [转载]深入JVM锁机制-synchronized

    转自:http://blog.csdn.net/chen77716/article/details/6618779,并加上少量自己的理解 目前在Java中存在两种锁机制:synchronized和Lo ...

  6. IP address could not be resolved: Temporary failure in name resolution

    今早发现mysql日志中有非常多例如以下的警告: 140724 18:41:25 [Warning] IP address '172.16.18.217' could not be resolved: ...

  7. HP-lefthand底层结构具体解释及存储灾难数据恢复

    HP-lefthand底层结构具体解释及存储灾难数据恢复 一.HP-lefthand的特点 HP-lefhand是一款很不错的SAN存储,使用iscsi协议为client分配空间. 它支持RAID5. ...

  8. bzoj1211: [HNOI2004]树的计数(prufer序列+组合数学)

    1211: [HNOI2004]树的计数 题目:传送门 题解: 今天刚学prufer序列,先打几道简单题 首先我们知道prufer序列和一颗无根树是一一对应的,那么对于任意一个节点,假设这个节点的度数 ...

  9. Spring深入浅出(四)AOP面向切面

    面向切面编程--AOP AOP(Aspect Oriented Programming),程序员称之为面向切面编程,是Spring框架除了IOC之外的另一个核心概念. AOP是对OOP(面向对象编程) ...

  10. Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解

    一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...