分页以及模糊查询
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//显示商品列表 public function list1(){ //查询商品分类 $cat = M('category')->select(); //注册一个变量 $this->assign("cat_list",$cat); //查询商品品牌 $brand = M('brand')->select(); //注册一个变量 $this->assign("brand_list",$brand); //表头 $arr = array('编号','商品名称','货号','价格','图片','缩略图','新品','精品','热销','库存','操作'); //注册一个表头数据 $this->assign("bt",$arr); //查询数据库 $m = M('goods')->select(); //模糊查询 //获取分类数据 $cat_id = $_GET['cat_id']; //获取品牌数据 $brand_id = $_GET['brand_id']; //获取推荐数据 $intro_type = $_GET['intro_type']; //获取上架数据 $is_on_sale = $_GET['is_on_sale']; //获取关键字数据 $keyword = $_GET['keyword']; //判断分类数据是否存在 if(!empty($cat_id)){ //如果存在,把条件追加到数组里 $where['goods_category_id'] =$cat_id; } //判断品牌数据是否存在 if(!empty($brand_id)){ $where['goods_brand_id'] =$brand_id; } //判断推荐数据是否存在 if(!empty($intro_type)){ //如果存在,把条件追加到数组里(等于1是因为表里面三个字段是通过1和0来区分是否被选中,html页面他们三个value是字段名) $where["$intro_type"] = '1'; } if(!empty($keyword)){ // $list = $m->where("goods_name like '%$keyword%'")->select(); $where['goods_name'] = array('like','%'.$keyword.'%'); } // 分页 //查询数据库 $model = M('goods'); //总记录数 where($where) 这是把上面模糊查询的结果放到这里面 $recordcount=$model->where($where)->count(); $page=new ThinkPage($recordcount,3);//new一个方法 $page->lastSuffix=false; //最后一页是否显示总页数 $page->rollPage=3; //分页栏每页显示的页数 $page->setConfig('prev', '【上一页】'); $page->setConfig('next', '【下一页】'); $page->setConfig('first', '【首页】'); $page->setConfig('last', '【末页】'); $page->setConfig('theme', '共 %TOTAL_ROW% 条记录,当前是 %NOW_PAGE%/%TOTAL_PAGE% %FIRST% %UP_PAGE% %DOWN_PAGE% %END%'); $startno=$page->firstRow; //起始行数 $pagesize=$page->listRows; //页面大小 $list=$model->where($where)->limit("$startno,$pagesize")->select(); $pagestr=$page->show(); //组装分页字符串 $this->assign('list',$list);//注册查询变量 $this->assign('pagestr',$pagestr);//注册分页变量 $this->display();//调用这个模板 }
验证码
html页面调用验证码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<tr> <td>验证码:</td> <td> <input type="text" name="captcha" class="capital" /> </td> </tr> <tr> <td colspan="2" align="right"> <img src="__CONTROLLER__/VerifyImg" width="145px" height="30px" alt="" onClick="this.src='__CONTROLLER__/VerifyImg/'+Math.random()" /> </td> </tr>
PHP页面调用方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//创建验证码方法 public function VerifyImg(){ //创建验证码的配置文件(框架自带的,可以直接从ThinkVerify拿过来用) $config = array( 'length' => 4, // 验证码位数 'useCurve' => false, // 是否画混淆曲线 'useNoise' => false, // 是否添加杂点 ); //实例化方法 $Verify = new ThinkVerify($config); //创建验证码 $Verify->entry(); }
判断验证码、账号密码是否正确
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//判断用户登录 public function dlyz(){ $this->utf(); //获取用户输入的验证码 $yzm = $_POST['captcha']; //new一个方法(找到Verify()) $img = new ThinkVerify(); //判断,如果验证码正确,在判断用户名密码(check($yzm)框架自带的验证方法 if($img->check($yzm)){ //找到数据库的表 $admin = M('admin'); //I方式接收 data括号里写字段名 I括号里写传输方式和name名,类似$_POST['admin_user']; $data['admin_user'] = I('post.username'); $data['admin_psd'] = I('post.password'); $mm = $admin->where($data)->find(); //判断,如果账号密码匹配 if($mm){ //跳转本控制器的Index方法 $_SESSION['qx'] = I('post.username'); $this->redirect("Index/index"); // $this->display(); }else{ //否则提示账号密码错误 $this->error('用户名或密码错误',U("login/login"),2); } }else{ //如果验证码错误,提示验证码错误 $this->error('验证码错误',U("login/login"),2); } }
上传图片及生成缩略图
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//添加商品sql语句调用商品模板 public function add(){ //查询商品品牌表 $brand = M('brand')->select(); //注册一个变量给html页面 $this->assign('brand',$brand); //查询商品分类 $category = M('category')->select(); $this->assign('category',$category); //判断前面是否post传值 if(IS_POST){ //查表 $goods = M('goods'); //create()方法接收前面所有的值 $data = $goods->create(); //判断goods_img(字段名)的error是否为0(就是判断上传图片是否成功) if($_FILES['goods_img']['error']==0){ //图片存放路径 $config = array( //后台路径 'rootPath' => "./Applicationxm/Admin/Public/img/", ); //new一个框架的方法 $upload = new ThinkUpload($config); $info = $upload->uploadOne($_FILES['goods_img']); //大图的存放路径 $data['goods_big_img'] = $info['savepath'].$info['savename']; //缩略图 //new一个方法 $img = new ThinkImage(); //打开图片 $big_img = $upload->rootPath.$data['goods_big_img']; $img->open($big_img); //生成缩略图 $img->thumb(200,300,2); //保存 $small_img = $upload->rootPath.$info['savepath'].'small_'.$info['savename']; $img->save($small_img); $data['goods_small_img'] = $info['savepath'].'small_'.$info['savename']; //给货号加时间戳 $data['goods_sn'] = time(); $str = '添加失败'; if($goods->add($data)){ $str = '添加成功'; } //跳转页面 $this->redirect('Menu/list1',array(),2,$str); } } //调用模板 $this->display(); }