drtoclr046994545 2018-11-22 08:35
浏览 99

使用foreach循环不是我想要的结果

$warehousesArray = array('Paharganj' => '5',
                         'Sant Nagar'=>'11324',
                         'Mumbai'=>'35798',
                        'UP Border'=>'117262',
                        'Top Floor'=>'170740',
                        'Gurgaon'=>'170741');


$stockSummaryQuery1 = "   SELECT 
                p.productid,
                                p.productname,
                                scf.cf_976 AS stock_quantity,
                                w.warehousename,
                                SUM(IF(scf.cf_974=scf.cf_976 AND scf.cf_974 != 0,1,0)) AS number_of_packs
                                FROM vtiger_products AS p
                                LEFT JOIN vtiger_productcf AS pcf ON pcf.productid = p.productid
                                LEFT JOIN vtiger_stockscf AS scf ON scf.cf_922 = p.productid
                                LEFT JOIN vtiger_stocks AS s ON scf.stocksid = s.stocksid
                            JOIN vtiger_crmentity AS stockent ON stockent.crmid = s.stocksid
                                    AND stockent.deleted = 0
                    LEFT JOIN vtiger_racks AS ra ON ra.racksid = scf.cf_924
                            JOIN vtiger_rackscf AS racf ON ra.racksid = racf.racksid
                    JOIN vtiger_rooms AS ro ON ro.roomsid = racf.cf_900
                            JOIN vtiger_roomscf AS rocf ON rocf.roomsid = ro.roomsid
                    JOIN vtiger_warehouses AS w ON rocf.cf_910 = w.warehousesid
                                LEFT JOIN vtiger_vendor AS v ON v.vendorid = p.vendor_id WHERE 1 ";

if (isset($_GET['vendor_name']) && !empty($_GET['vendor_name'])) {
                $warehouseid_array = explode("_", $_GET['vendor_name']);
                $warehouseid = $warehouseid_array[0];
                $stockSummaryQuery1 .= " AND v.vendorid = ".$warehouseid;
            }

foreach ($warehousesArray as $key => $value) {

                    echo  $stockSummaryQuery1.= " AND w.warehousesid = $value";
            echo "<br><br><br><br>";


}
$stockSummaryQuery1 .= " GROUP BY p.productid ASC";

i have echo the queries and the result is

SELECT p.productid, p.productname, scf.cf_976 AS stock_quantity, w.warehousename, SUM(IF(scf.cf_974=scf.cf_976 AND scf.cf_974 != 0,1,0)) AS number_of_packs FROM vtiger_products AS p LEFT JOIN vtiger_productcf AS pcf ON pcf.productid = p.productid LEFT JOIN vtiger_stockscf AS scf ON scf.cf_922 = p.productid LEFT JOIN vtiger_stocks AS s ON scf.stocksid = s.stocksid JOIN vtiger_crmentity AS stockent ON stockent.crmid = s.stocksid AND stockent.deleted = 0 LEFT JOIN vtiger_racks AS ra ON ra.racksid = scf.cf_924 JOIN vtiger_rackscf AS racf ON ra.racksid = racf.racksid JOIN vtiger_rooms AS ro ON ro.roomsid = racf.cf_900 JOIN vtiger_roomscf AS rocf ON rocf.roomsid = ro.roomsid JOIN vtiger_warehouses AS w ON rocf.cf_910 = w.warehousesid LEFT JOIN vtiger_vendor AS v ON v.vendorid = p.vendor_id WHERE 1 AND w.warehousesid = 5

SELECT p.productid, p.productname, scf.cf_976 AS stock_quantity, w.warehousename, SUM(IF(scf.cf_974=scf.cf_976 AND scf.cf_974 != 0,1,0)) AS number_of_packs FROM vtiger_products AS p LEFT JOIN vtiger_productcf AS pcf ON pcf.productid = p.productid LEFT JOIN vtiger_stockscf AS scf ON scf.cf_922 = p.productid LEFT JOIN vtiger_stocks AS s ON scf.stocksid = s.stocksid JOIN vtiger_crmentity AS stockent ON stockent.crmid = s.stocksid AND stockent.deleted = 0 LEFT JOIN vtiger_racks AS ra ON ra.racksid = scf.cf_924 JOIN vtiger_rackscf AS racf ON ra.racksid = racf.racksid JOIN vtiger_rooms AS ro ON ro.roomsid = racf.cf_900 JOIN vtiger_roomscf AS rocf ON rocf.roomsid = ro.roomsid JOIN vtiger_warehouses AS w ON rocf.cf_910 = w.warehousesid LEFT JOIN vtiger_vendor AS v ON v.vendorid = p.vendor_id WHERE 1 AND w.warehousesid = 5 AND w.warehousesid = 11324



SELECT p.productid, p.productname, scf.cf_976 AS stock_quantity, w.warehousename, SUM(IF(scf.cf_974=scf.cf_976 AND scf.cf_974 != 0,1,0)) AS number_of_packs FROM vtiger_products AS p LEFT JOIN vtiger_productcf AS pcf ON pcf.productid = p.productid LEFT JOIN vtiger_stockscf AS scf ON scf.cf_922 = p.productid LEFT JOIN vtiger_stocks AS s ON scf.stocksid = s.stocksid JOIN vtiger_crmentity AS stockent ON stockent.crmid = s.stocksid AND stockent.deleted = 0 LEFT JOIN vtiger_racks AS ra ON ra.racksid = scf.cf_924 JOIN vtiger_rackscf AS racf ON ra.racksid = racf.racksid JOIN vtiger_rooms AS ro ON ro.roomsid = racf.cf_900 JOIN vtiger_roomscf AS rocf ON rocf.roomsid = ro.roomsid JOIN vtiger_warehouses AS w ON rocf.cf_910 = w.warehousesid LEFT JOIN vtiger_vendor AS v ON v.vendorid = p.vendor_id WHERE 1 AND w.warehousesid = 5 AND w.warehousesid = 11324 AND w.warehousesid = 35798

My desired result is the warehouseid is only written once and the values changes from 5 to 11324 and then 35798

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 易康econgnition精度验证
    • ¥15 线程问题判断多次进入
    • ¥15 msix packaging tool打包问题
    • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
    • ¥15 python的qt5界面
    • ¥15 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致