thinkphp:判断数据是否存在,再作为数据库的判断条件(给数据库查询增加额外的查询条件)

方法一:用thinkphp的语法去写

public function select_endProduceinfo(){$like_info = input('post.like_info', '');$page = input('post.page', 1);$pageSize = input('post.pageSize', 10);$start = ($page - 1) * $pageSize;$username = input('post.username','');$search_line1 = input('post.search_line1','');$search_line2 = input('post.search_line2','');$search_line3 = input('post.search_line3','');$search_line4 = input('post.search_line4','');$employee_num = db::table('fa_account_info')->where(['username' => $username])->value('employee_num');//全部数据信息  $data['info'] = db::table('wip_transactions')->alias('d') // 设置wip_jobs_all的别名->join(['wip_jobs_all' => 'a'], 'd.wip_entity_name = a.wip_entity_name')->join(['sf_item_no' => 'c'], 'a.primary_item = c.item_no')->join(['hr_employees' => 'e'], 'e.employee_num = d.employee_num')->field('d.*, c.item_no as item_no, c.item_name as item_name, c.units as uom, e.employee_name as employee_name')->where(['d.employee_num' => $employee_num])->where(['d.wip_entity_name'=>['like','%'.$like_info.'%']]);// 添加查询条件if (!empty($search_line1)) {$data['info']->where('d.wip_entity_name', 'LIKE', "%$search_line1%");}if (!empty($search_line2)) {$data['info']->where('d.operation_code', 'LIKE', "%$search_line2%");}if (!empty($search_line3)) {$data['info']->where('item_no', 'LIKE', "%$search_line3%");}if (!empty($search_line4)) {$data['info']->where('item_name', 'LIKE', "%$search_line4%");}$data['info'] = $data['info']->order(['transaction_date' => 'desc'])->limit($start, $pageSize)->select();
//求出数据总数$data['total'] =  db::table('wip_transactions')->alias('d') // 设置wip_jobs_all的别名->join(['wip_jobs_all' => 'a'], 'd.wip_entity_name = a.wip_entity_name')->join(['sf_item_no' => 'c'], 'a.primary_item = c.item_no')->join(['hr_employees' => 'e'], 'e.employee_num = d.employee_num')->field('d.*, c.item_no as item_no, c.item_name as item_name, c.units as uom, e.employee_name as employee_name')->where(['d.employee_num' => $employee_num])->where(['d.wip_entity_name'=>['like','%'.$like_info.'%']]);  // 添加查询条件if (!empty($search_line1)) {$data['info']->where('d.wip_entity_name', 'LIKE', "%$search_line1%");}if (!empty($search_line2)) {$data['info']->where('d.operation_code', 'LIKE', "%$search_line2%");}if (!empty($search_line3)) {$data['info']->where('item_no', 'LIKE', "%$search_line3%");}if (!empty($search_line4)) {$data['info']->where('item_name', 'LIKE', "%$search_line4%");}         $data['total'] = $data['total']->order(['transaction_date' => 'desc'])->count();//处理数据for ($i = 0; $i < count($data['info']); $i++) {//计算时差$data['info'][$i]['hours_diff'] = number_format(($data['info'][$i]['end_date'] - $data['info'][$i]['begin_date']) / 3600, 4);if ($data['info'][$i]['transaction_type'] != '良品') {$data['info'][$i]['hours_diff'] = '';}//处理时间$data['info'][$i]['transaction_date'] = date('Y-m-d', $data['info'][$i]['transaction_date']);$data['info'][$i]['begin_date'] = date('Y-m-d H:i:s', $data['info'][$i]['begin_date']);$data['info'][$i]['end_date'] = date('Y-m-d H:i:s', $data['info'][$i]['end_date']);if (!$data['info'][$i]['transaction_quantity']) {$data['info'][$i]['transaction_quantity'] = 0;}}echo json_encode($data);
}

方法二:嵌套mysql的语法

public function select_POorder_deatil(){$page = input('post.page', 1);$pageSize = input('post.pageSize', 10);$start = ($page - 1) * $pageSize;$order_number = input('post.order_number','');//头信息$header_info = "SELECT  pha.po_num, pha.status,order_type, pha.note,pha.payment_term ,pha.order_date,pha.app_remark, pha.creation_date, pha.tax_amount,pha.tax_flag,pha.all_line_amount, pha.created_by, pha.youhui_amount, vendor_name,pha.po_all_amount,pha.vendor_code,pha.payment_type,pha.tax_name FROM    po_headers_all pha, vendors vWHERE   v.vendor_code = pha.vendor_codeAND     po_num= '" .$order_number."'";$data['header_info'] =  Db::query($header_info);//处理日期for($i=0;$i<count($data['header_info']);$i++){$data['header_info'][$i]['creation_date'] = date('Y-m-d H:i:s', $data['header_info'][$i]['creation_date']);$data['header_info'][$i]['order_date'] = date('Y-m-d', $data['header_info'][$i]['order_date']);}//行信息$line_info = "SELECT  a.line,a.stockid,b.item_desc,b.item_name,a.uom,a.price,a.quantity,a.po_num,a.line_amount,a.last_update_date,a.creation_date,ifnull(quantity_received,0) quantity_received,ifnull(quantity_accepted,0) quantity_accepted,ifnull(quantity_deliveried,0) quantity_deliveried,ifnull(quantity_cancelled,0) quantity_cancelled,ifnull(quantity_rejected,0) quantity_rejected,ifnull(quantity_billed,0) quantity_billed,a.created_by,(select locationname from locations d where d.loccode=a.subinventory_code) locationname,a.need_dateFROM    po_lines_all a,sf_item_no bwhere   a.stockid=b.item_no   and     po_num = '" .$order_number."' ";$line_info .="  ORDER BY a.line ASCLIMIT $start, $pageSize ";    $data['line_info'] =  Db::query($line_info);//处理日期for($i=0;$i<count($data['line_info']);$i++){$data['line_info'][$i]['creation_date'] = date('Y-m-d H:i:s', $data['line_info'][$i]['creation_date']);}//行总数$line_count = "SELECT COUNT(*) AS countFROM (SELECT  a.line,a.stockid,b.item_desc,b.item_name,a.uom,a.price,a.quantity,a.po_num,a.line_amount,a.last_update_date,a.creation_date,ifnull(quantity_received,0) quantity_received,ifnull(quantity_accepted,0) quantity_accepted,ifnull(quantity_deliveried,0) quantity_deliveried,ifnull(quantity_cancelled,0) quantity_cancelled,ifnull(quantity_rejected,0) quantity_rejected,ifnull(quantity_billed,0) quantity_billed,a.created_by,(select locationname from locations d where d.loccode=a.subinventory_code) locationname,a.need_dateFROM    po_lines_all a,sf_item_no bwhere   a.stockid=b.item_no   and     po_num = '" .$order_number."' ) AS subquery;";$result = Db::query($line_count);$data['line_info_total'] = isset($result[0]['count']) ? $result[0]['count'] : 0;    echo json_encode($data);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/81544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样用图片去搜索商品呢?

taobao.item_search_img 为了进行电商平台 的API开发&#xff0c;首先我们需要做下面几件事情。 1&#xff09;开发者注册一个账号 2&#xff09;然后为每个taobao应用注册一个应用程序键&#xff08;App Key) 。 3&#xff09;下载taobaoAPI的SDK并掌握基本的API基础知识和…

Docker基础入门

文章目录 前言一、什么是DockerDocker 安装Docker 镜像Docker 容器Docker 安装nginx 前言 在Linux上安装软件有三种方式&#xff1a; 在redhat系列下的发行版通过rpm包安装或者是在debian系列下的发行版通过deb包安装&#xff1b;通过工具安装&#xff0c;在redhat系列下的发…

7年阿里测试经验之谈 —— 用UI自动化测试实现元素定位

随着IT行业的发展&#xff0c;产品愈渐复杂&#xff0c;web端业务及流程更加繁琐&#xff0c;目前UI测试仅是针对单一页面&#xff0c;操作量大。为了满足多页面功能及流程的需求及节省工时&#xff0c;设计了这款UI 自动化测试程序。旨在提供接口&#xff0c;集成到蜗牛自动化…

prometheus 告警

prometheus 告警 1, prometheus 告警简介 告警能力在Prometheus的架构中被划分成两个独立的部分。如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息。 在Prometheus中一…

VS 2015编译 Wireshark2.6.14

1.编译环境 1.1 Windows 8.1 64位 1.2 Microsoft Visual Studio Enterprise 2015 1.3 Python 2.7.18 1.4 Cygwin 3.4.8 1.5 CMake 3.27.4 1.6 wireshark-2.6.14源码 1.7 wireshark依赖库文件 2.安装VS2015 安装路径:C:\Program Files (x86)\Microsoft Visu…

【Spring容器的启动过程】

Spring容器的启动过程 Spring 在初始化过程中有二个非常重要的步骤&#xff0c;容器的初始化与刷新。 初始化流程 如果想生成 bean 对象&#xff0c;那么就需要一个 beanFactory 工厂&#xff08;DefaultListableBeanFactory&#xff09;如果想让加了特定注解&#xff08;如 …

【论文笔记】Baidu Apollo EM Motion Planner

文章目录 AbstractI. INTRODUCTIONA. Multilane StrategyB. Path-Speed Iterative AlgorithmC. Decisions and Traffic Regulations II. EM PLANNER FRAMEWORK WITH MULTILANE STRATEGYIII. EM PLANNER AT LANE LEVELA. SL and ST Mapping (E-step)B. M-Step DP PathC. M-Step …

刻字机尖角补偿

1 刻字机尖角补偿原理 刀具切割直线段过渡方法在文章旋转偏心裁切刀切向跟踪及半径补偿 已经有过说明。刻字机由于刀具半径的影响&#xff0c;切割直角时会不直会比较圆滑&#xff0c;而且在闭合曲线的下刀点会容易不闭合。使用尖角补偿可以克服这些问题。 如上图所示&#xf…

Java常用类之 JDK 8之前的日期时间API 和 8中新日期时间API

Java常用类 文章目录 三、JDK 8之前的日期时间API3.1、currentTimeMillis3.2、两个Date类的使用3.3、SimpleDateFormat3.4、Calendar日历类的使用 四、JDK 8中新日期时间API4.1、LocalDate、LocalTime、LocalDateTime的使用4.2、Instant瞬时类4.3、DateTimeFormatter 三、JDK …

上海亚商投顾:沪指放量反弹 医药、AI概念股集体走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数早间震荡反弹&#xff0c;午后集体拉升涨超1%&#xff0c;深成指一度涨超1.5%&#xff0c;随后涨幅略…

【JDK 8-Lambda】3.2 自定义函数式编程实战

一、自定义lambda接口流程 需求 : 定义一个可以使用加减乘除的接口 Stage 1&#xff1a;定义一个函数式接口 Stage 2&#xff1a;写一个方法&#xff0c;输入需要操做的数据和接口 Stage 3&#xff1a;运行结果 一、自定义lambda接口流程 需求 : 定义一个可以使用加减乘除的…

Web 器学习笔记(基础)

Filter 过滤器 概念&#xff1a;表示过滤器&#xff0c;是 JavaWeb 三大组件&#xff08;Servlet、Filter、Listener&#xff09;之一 作用&#xff1a;顾名思义可以过滤资源的请求&#xff0c;并实现特殊的需求 Filter 接口及它核心的 doFilter() 方法&#xff08;执行前就是…

激光焊接汽车PP塑料配件透光率测试仪

随着汽车主机厂对车辆轻量化的需求越来越强烈&#xff0c;汽车零部件轻量化设计、制造也成为汽车零部件生产厂商的重要技术指标。零部件企业要实现产品的轻量化&#xff0c;在材料指定的情况下&#xff0c;要通过产品设计优化、产品壁厚减小和装配方式的优化来解决。使用PP材料…

Rocketmq并发和顺序消费的失败重试机制

文章目录 问题并发消费触发时机客户端发起请求 CONSUMER_SEND_MSG_BACKBroker处理CONSUMER_SEND_MSG_BACK请求 顺序消费Q&A消费的时候是一批的消息, 如果其中某条消费失败了,是所有的消息都会被重试吗&#xff1f;用户可以自己控制重试次数、重试间隔时间吗?批量消费消息,…

Kubernetes网络揭秘:看完你就懂了

一、Master集群网络 master集群的网络比较简单&#xff0c;和通常的负载均衡集群一样。多个节点的apiserver的ip与端口(6443)使用负载均衡的ip与端口。在master/node节点join时均使用此负载均衡的ip与端口&#xff0c;这样就是master节点的集群网络。 master 节点之间的网络&a…

arm栈推导

按照栈生长方向分&#xff1a;可以分为递增栈&#xff08;向高地址生长&#xff09;&#xff1b;递减栈&#xff08;向低地址生长&#xff09; 按照sp执行位置来分&#xff1a;满栈&#xff08;sp指向栈顶元素的位置&#xff09;&#xff1b;空栈&#xff08;sp指向即将入栈的…

利用爬虫技术自动化采集汽车之家的车型参数数据

导语 汽车之家是一个专业的汽车网站&#xff0c;提供了丰富的汽车信息&#xff0c;包括车型参数、图片、视频、评测、报价等。如果我们想要获取这些信息&#xff0c;我们可以通过浏览器手动访问网站&#xff0c;或者利用爬虫技术自动化采集数据。本文将介绍如何使用Python编写…

MATLAB中findpeaks函数用法

目录 语法 说明 示例 在MATLAB中&#xff0c;findpeaks函数用于查找信号中的峰值&#xff08;peaks&#xff09;。以下是findpeaks函数的基本语法、说明以及示例&#xff1a; 语法 [pks,locs] findpeaks(x) [pks,locs] findpeaks(x, Name, Value)说明 参数说明 x&…

JVM性能调优-一.思路方向

一、调优策略 对于GC的性能主要有2个方面的指标&#xff1a;吞吐量throughput&#xff08;工作时间不算gc的时间占总的时间比&#xff09;和暂停pause&#xff08;gc发生时app对外显示的无法响应&#xff09;。 1、调优的目的 调优的最终目的当然增大吞吐量&#xff0c;减少暂…

勒索病毒最新变种.halo勒索病毒来袭,如何恢复受感染的数据?

摘要&#xff1a; .halo勒索病毒已成为数字世界中的威胁&#xff0c;通过高级加密技术将文件锁定&#xff0c;并要求支付赎金。本文91数据恢复将深入介绍.halo勒索病毒的工作原理&#xff0c;提供解锁被感染文件的方法&#xff0c;以及探讨如何有效预防这一威胁。如果您正在经…