Php 在本声明中,我在何处下单?

Php 在本声明中,我在何处下单?,php,mysql,Php,Mysql,我无法通过下面的语句确定在何处下单。。。非常感谢您的帮助 // Load all products $ProdPackQ = "SELECT prod_name AS Name, days_span, CONCAT(LEFT(prodID,2),ID) AS ID, geo_targeting FROM products WHERE status = 'Active' AND vendID = ".$resort['vendID']; if(isset($_GET['dz'])) $Pr

我无法通过下面的语句确定在何处下单。。。非常感谢您的帮助

// Load all products
$ProdPackQ = "SELECT prod_name AS Name, days_span, CONCAT(LEFT(prodID,2),ID) AS ID,     geo_targeting FROM products WHERE status = 'Active' AND vendID = ".$resort['vendID'];
if(isset($_GET['dz']))
$ProdPackQ .= " AND days_span = ".$_GET['dz'];
/*else
$ProdPackQ .= " AND days_span = 1"; */
$ProdPackQ .= " AND prod_type = ".$thisprodtype;
if(count($packarr) != 0)

{ $ProdPackQ .= " UNION SELECT pack_name AS Name, days_span, CONCAT(LEFT(packID,2),ID), NULL as geo_targeting FROM packages WHERE ID IN(".$mypacks.")";
    if(isset($_GET['dz']))
    $ProdPackQ .= " AND days_span = ".$_GET['dz'];
/*else
    $ProdPackQ .= " AND days_span = 1"; */
$ProdPackQ .= " ORDER BY prod_name, days_span, ID";
}

在查询的最后一部分,规则拇指按顺序排列。所以把它放在if语句块之外。

orderby在正确的位置,但在select中需要它,如下所示

// Load all products
$ProdPackQ = "SELECT prod_name AS Name, days_span, CONCAT(LEFT(prodID,2),ID) AS ID,                 
geo_targeting FROM products WHERE status = 'Active' AND vendID = ".$resort['vendID'];
if(isset($_GET['dz']))
$ProdPackQ .= " AND days_span = ".$_GET['dz'];
/*else
$ProdPackQ .= " AND days_span = 1"; */
$ProdPackQ .= " AND prod_type = ".$thisprodtype;
if(count($packarr) != 0)

{ $ProdPackQ .= " UNION SELECT pack_name AS Name, days_span, CONCAT(LEFT(packID,2),ID) AS ID,      
 NULL as geo_targeting FROM packages WHERE ID IN(".$mypacks.")";
    if(isset($_GET['dz']))
     $ProdPackQ .= " AND days_span = ".$_GET['dz'];
/*else
$ProdPackQ .= " AND days_span = 1"; */
$ProdPackQ .= " ORDER BY Name, days_span, ID";
}

你说对了。你觉得它有什么问题吗?但您只能按所选字段订购。我会将其置于
if(count($packarr)!=0)
块之外;Order BY不在SQL中statement@user949509:请使用
mysql\u error()
查看mysql错误。我是否应该尝试$ProdPackQ.=“按产品名称排序”?