很抱歉,标题不好,但我不知道有更好的选择.
目前,我正在创建一个搜索引擎以获取产品详细信息.我有2种搜索类型,第一种是使用产品类型进行搜索,另一种是使用产品名称进行搜索.
这是搜索代码:
$search_exploded = explode (" ", $search);
$x = "";
$construct = "";
foreach ($search_exploded as $search_each) {
$x++;
if ($x==1)
$construct .="product_type LIKE '%$search_each%'";
else
$construct .="AND product_type LIKE '%$search_each%'";
}
?>
这是数据获取代码.
$results = $mysqli->query("SELECT * FROM produk2 WHERE $construct" );
if ($results) {
//fetch results set as object and output HTML
while ($obj = $results->fetch_object()) {
echo '
echo '
';echo '
';echo '
'.$obj->product_name.'
';echo '
echo '
echo 'Price '.$currency.$obj->price.' | ';
echo 'Qty ';
echo 'Add To Cart';
echo '
echo '';
echo '';
echo '';
echo '
';echo '
}
如何根据我从用户输入中获得的信息将数据搜索从product_type更改为product_name,反之亦然?
由于英语不好,我无法真正更好地解释它.
解决方法:
您可以像下面这样将其设置为OR条件.这样,无论哪种uset类型都将应用于这两个列,并且由于它是OR条件,因此如果其中一个匹配,它将返回true.
where product_type LIKE '%$search_each%'
or product_name LIKE '%$search_each%';
修改下面的代码段
if ($x==1)
$construct .="product_type LIKE '%$search_each%'";
else
$construct .="AND product_type LIKE '%$search_each%'";
成为
$construct .="product_type LIKE '%$search_each%' OR product_name LIKE '%$search_each%'";
标签:mysql,php
来源: https://codeday.me/bug/20191027/1948154.html