ECSHOP前臺可按商品名稱關鍵字、商品貨號關鍵字等搜索商品,但不能按屬性貨號搜索。屬性貨號是ECSHOP屬性庫存的唯一識別號,建立屬性庫存后,屬性貨號保存在products表中,下面介紹如何開發按屬性貨號關鍵字搜索。
編輯/search.php
一、修改搜索關鍵字變量,添加屬性貨號關鍵字product_sn。
$keywords .= "(goods_name LIKE '%$val%' OR goods_sn LIKE '%$val%' OR keywords LIKE '%$val%' $sc_dsad)";
$keywords .= "(goods_name LIKE '%$val%' OR goods_sn LIKE '%$val%' OR keywords LIKE '%$val%' $sc_dsad)";
修改為
$keywords .= "(goods_name LIKE '%$val%' OR goods_sn LIKE '%$val%' OR product_sn LIKE '%$val%' OR keywords LIKE '%$val%' $sc_dsad)";
//添加按屬性貨號product_sn查詢
$keywords .= "(goods_name LIKE '%$val%' OR goods_sn LIKE '%$val%' OR product_sn LIKE '%$val%' OR keywords LIKE '%$val%' $sc_dsad)";
//添加按屬性貨號product_sn查詢
二、修改商品總數SQL語句,添加goods表與products表連接查詢。
/* 獲得符合條件的商品總數 */
$sql = "SELECT COUNT(*) FROM " .$ecs->table('goods'). " AS g ". "WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1
$attr_in ". "AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock ." ) ".$tag_where." )";
/* 獲得符合條件的商品總數 */
$sql = "SELECT COUNT(*) FROM " .$ecs->table('goods'). " AS g ".
"WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ".
"AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock ." ) ".$tag_where." )";
修改為
/* 獲得符合條件的商品總數 */
$sql = "SELECT COUNT(*) FROM " .$ecs->table('goods'). " AS g ". "LEFT JOIN " . $GLOBALS['ecs']->table('products') . " AS p ". "ON g.goods_id = p.goods_id ". "WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ". "AND (( 1 " .
$categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock ." ) ".$tag_where." )";
/* 獲得符合條件的商品總數 */
$sql = "SELECT COUNT(*) FROM " .$ecs->table('goods'). " AS g ".
"LEFT JOIN " . $GLOBALS['ecs']->table('products') . " AS p ".
"ON g.goods_id = p.goods_id ".
"WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ".
"AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock ." ) ".$tag_where." )";
三、修改商品查詢SQL語句,添加goods表與products表連接查詢。
/* 查詢商品 */
$sql = "SELECT g.goods_id, g.goods_name, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ". "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ". "g.promote_price, g.promote_start_date, g.promote_end_date, g.goods_thumb, g.goods_img, g.goods_brief, g.goods_type ". "FROM " .$ecs->table('goods'). " AS g ". "LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ". "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ". "WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ". "AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock . " ) ".$tag_where." ) " . "ORDER BY $sort $order";
/* 查詢商品 */
$sql = "SELECT g.goods_id, g.goods_name, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ".
"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".
"g.promote_price, g.promote_start_date, g.promote_end_date, g.goods_thumb, g.goods_img, g.goods_brief, g.goods_type ".
"FROM " .$ecs->table('goods'). " AS g ".
"LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".
"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ".
"WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ".
"AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock . " ) ".$tag_where." ) " .
"ORDER BY $sort $order";
修改為
/search.php
PHP
/* 查詢商品 */
$sql = "SELECT g.goods_id, g.goods_name, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ". "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ". "g.promote_price, g.promote_start_date, g.promote_end_date, g.goods_thumb, g.goods_img, g.goods_brief, g.goods_type ". "FROM " .$ecs->table('goods'). " AS g ". "LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ". "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ". "LEFT JOIN " . $GLOBALS['ecs']->table('products') . " AS p ". "ON g.goods_id = p.goods_id ". "WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ". "AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock . " ) ".$tag_where." ) " . "ORDER BY $sort $order";
/* 查詢商品 */
$sql = "SELECT g.goods_id, g.goods_name, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ".
"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".
"g.promote_price, g.promote_start_date, g.promote_end_date, g.goods_thumb, g.goods_img, g.goods_brief, g.goods_type ".
"FROM " .$ecs->table('goods'). " AS g ".
"LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".
"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ".
"LEFT JOIN " . $GLOBALS['ecs']->table('products') . " AS p ".
"ON g.goods_id = p.goods_id ".
"WHERE g.is_delete = 0 AND g.is_on_sale = 1 AND g.is_alone_sale = 1 $attr_in ".
"AND (( 1 " . $categories . $keywords . $brand . $min_price . $max_price . $intro . $outstock . " ) ".$tag_where." ) " .
"ORDER BY $sort $order";
新聞熱點
疑難解答