当前位置: 首页 > news >正文

php ajax筛选,ajax商品筛选功能怎么进行判断

本帖最后由 q5975166 于 2014-07-07 19:49:42 编辑 我把筛选商品的各个选项以json的形式存入数据库的一个字段(cp_leibie)

比如我存了3条

他们的选项就是

{"208":["209"],"5":["182"],"6":["30"],"27":["36"],"28":["34"]} 假如该条数据id为1

{"92":["201","202","204"],"93":["137","138","139"],"94":["143","144"]}假如该条数据id为2

{"208":["209"],"5":["182"],"6":["29"],"27":["35"],"28":["33"]}假如该条数据id为3

取出的时候以数组遍历

-----------------------------------------------------------------

比如商品中其中一个选项是 (适用环境: 全部 办公室 现代 欧式 )

那么$peistr是“适用环境”的id,$liestr是后面的子选项的id,

具体怎么接收的就不贴出来了,

下面for循环里为什么减二也不用考虑了。

下面是ajax提交过去的查询语句:

$strpei="select `id`,`name`,`huiyuanjia`,`cpimg`,`shichangjia`,cp_leibie from `".$db_prefix."chanpin` where `ifxianshi`=1 and `cpfl`='".$sid."' ";

$dqcp = $Db->FetchAll($strpei);//这是执行sql语句的方法

$strpei.="and id in(";

$strpei2="";

foreach($dqcp as $dkey=>$dvalue){//遍历所有商品

$darr=json_decode(urldecode($dvalue['cp_leibie']),true);//把json数据进行解码

for($i=0;$iforeach($darr[$peistr[$i]] as $dddkey=>$dddvalue){//把解码后的数据进行遍历,键名是接收到的商品选项的id

if($liestr[$i]==$dddvalue){//子选项的id和json数据里的值一致的话,就把该条数据的id加到条件里

$strpei2.=$dvalue['id'].",";

}

}

}

}

$strpei.=$strpei2.")";

符合条件的就把对应的商品的id写到条件的in语法里。

假如点击了209的子项,那么id为1和3的id就会加入条件里

问题是接收第一次没问题,当接收第二次的时点击201,应该没有符合条件的数据,但是3个ID的数据他都显示了出来。

应该是循环里的if判断没有写对,不知条件该如何写。或者在其他地方入手能解决

------解决方案--------------------

我把判断改了一下

if($liestr[$i]==$dddvalue){

$strpei2.=$dvalue['id'].",";

}

$where.="$liestr[$i]==$dddvalue &&";

if($i==(count($peistr)-2)){

$where= substr($where,0,-2);

}

if($where){

$strpei2.=$dvalue['id'].",";

}

但是这样的话,$where他是一个字符串来放到if里判断的。不能进行判断处理 无论是什么$where都是1。这只是一个思路,你看看吧

相关文章

相关视频

相关文章:

  • php curl_init 报错,如何解决curl_init php报错问题
  • php ?page,google chrome浏览器下载 PHP通用分页类pagephp[仿google分页]
  • php curl ssl错误,php curl常见错误:SSL错误、bool(false)
  • win2008系统php伪静态,ZBlog PHP在WIN2008 64位系统不能伪静态的解决方法
  • 常用PHP命令,PHP 常用命令行
  • python爬虫怎么自动下载图片,【图文详解】python爬虫实战——5分钟做个图片自动下载器...
  • 立方体相册代码php,3D相册制作代码
  • oracle问题如何解决方案,oracle问题解决方案汇总
  • oracle+dbca+创建失败,oracle dbca启动图形不成功的处理方法
  • oracle 只读方式打开文件,OracleDataGuard_备库以只读或读写方式打开访问
  • oracle导出一半报1046,Oracle 数据库1046事件
  • php级联删除怎么做,如何设置主键和外键,实现级联更新、级联删除
  • linux虚拟机卸载重装,go的卸载与重装(linux系统)
  • linux进程sep19,Linux 系统资源查看:vmstat,dmesg,free,uptime,uname,lsb_release,lsof
  • linux用sz下载文件夹,linux上很方便的上传下载文件工具rz和sz使用介绍
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Angular数据绑定机制
  • CSS相对定位
  • egg(89)--egg之redis的发布和订阅
  • ES6--对象的扩展
  • hadoop集群管理系统搭建规划说明
  • MD5加密原理解析及OC版原理实现
  • Python_网络编程
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Solarized Scheme
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 包装类对象
  • 动态魔术使用DBMS_SQL
  • 分享一份非常强势的Android面试题
  • 码农张的Bug人生 - 初来乍到
  • 前端代码风格自动化系列(二)之Commitlint
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 由插件封装引出的一丢丢思考
  • 源码安装memcached和php memcache扩展
  • 06-01 点餐小程序前台界面搭建
  • 【干货分享】dos命令大全
  • 阿里云服务器购买完整流程
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #NOIP 2014# day.1 T2 联合权值
  • #考研#计算机文化知识1(局域网及网络互联)
  • #每天一道面试题# 什么是MySQL的回表查询
  • (02)vite环境变量配置
  • (1)Nginx简介和安装教程
  • (26)4.7 字符函数和字符串函数
  • (6)设计一个TimeMap
  • (转)JAVA中的堆栈
  • (转)用.Net的File控件上传文件的解决方案
  • ***详解账号泄露:全球约1亿用户已泄露
  • 、写入Shellcode到注册表上线
  • .dwp和.webpart的区别
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes