时间:2021-07-01 10:21:17 帮助过:21人阅读
1:关联查询并有的字段名相同查询全部字段
$goodsNum = $cartlistM->field('*,a.id as cid')->join('Goods as b on a.goods_id = b.id')->where(array('a.id' =>$_POST['cartID'] ))->find();2:查询按条件去处重复值的语句
M('propertytake')->group('batchnum')->where($w)->select();3:在循环中去除查询selsect()中不符合条件的数组
foreach ($propertyArr as $key=>$val)
{ $w['mid'] = $this->mid; $w['property_id'] = $val['id']; //查询期数是否已领满9年
$hasGetYear = count(M('propertytake')->group('batchnum')->where($w)->select());//查询当前资产在本期已收成的消耗资源数量
$w['batchnum'] = $setBatch; $temp_num = M('propertytake')->where($w)->sum('nums'); if(empty($temp_num))
{ $temp_num = 0;
}if ($hasGetYear >= $goodsArr['getmaxnum']||$temp_num>=$val['totaltree']||$val['totaltree']<=0) { unset($propertyArr[$key]); }else { $treeNum += $val['totaltree']; } }4:常用函数
a)fmod() 函数返回除法的浮点数余数。
b)unset($saveData);销毁数组
c)strtotime(date('Y').'-01-01');把时间变为时间戳的函数
d)isMobile();判断当前用户是否手机
e)array_push($arr,$val);//$arr被添加的数组,$val为添加的值5:thinkPHP的事务处理 例://开启事务处理本地数据
M()->startTrans(); //提交 M()->commit(); //不提交 M()->rollback();
6:json解析json_decode();json加密json_encode(value);
7:调用父类(被继承类)
parent::memaddress($list['province'],$list['city'],$list['district']);//parent::是父的意思,memaddress是父类中的函数
8:查询方法之过滤查询
distanct(true)
例:
$data=M('user')->distanct(true)->field('score')->order('score asc')->select();9:thinkPHP在字段值上自增或自减
$newM->where('id='.$cid)->setInc('browser',1); //browser字段值自增1,setDec是自减10:各种循环(for forech ….) 跳出循环return,break,continue三者区别
break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。 break不仅可以结束其所在的循环,还可结束其外层循环。此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环。Java中的标签就是一个紧跟着英文冒号(:)的标识符。且它必须放在循环语句之前才有作用。
public class BreakTest2
{
public static void main(String[] args){
// 外层循环,outer作为标识符 outer:
for (int i = 0 ; i < 5 ; i++ ){
// 内层循环 for (int j = 0; j < 3 ; j++ ){
System.out.println("i的值为:" + i + " j的值为:" + j);
if (j == 1){
// 跳出outer标签所标识的循环。 break outer;
}
}
}
}
}continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。而break则是完全中止循环。
public class ContinueTest
{
public static void main(String[] args){// 一个简单的for循环 for (int i = 0; i < 3 ; i++ ){
System.out.println("i的值是" + i);
if (i == 1){
// 忽略本次循环的剩下语句 continue;
}
System.out.println("continue后的输出语句");
}
}
}return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。
public class ReturnTest
{
public static void main(String[] args){
// 一个简单的for循环 for (int i = 0; i < 3 ; i++ ){
System.out.println("i的值是" + i);
if (i == 1){
return;
}
System.out.println("return后的输出语句");
}
}
}相关推荐:
php查询相似字符串的方法
利用php查询mysql表是否存在的方法总结
thinkPHP查询方式小结
以上就是ThinkPHP和PHP一些查询小技巧分享的详细内容,更多请关注Gxl网其它相关文章!