我很抱歉标题不好,但我不知道更好的选择。
目前我正在创建一个搜索引擎来获取产品详细信息。我有 2 种搜索类型,第一种是使用产品类型进行搜索,另一种是使用产品名称进行搜索。
这是搜索代码:
<?php
$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 '<div class="product">';
echo '<form method="post" action="cart_update.php">';
echo '<div class="product-thumb"><img src="images/'.$obj- >product_img_name.'"></div>';
echo '<div class="product-content"><h3>'.$obj->product_name.'</h3>';
echo '<div class="product-desc">'.$obj->product_desc.'</div>';
echo '<div class="product-info">';
echo 'Price '.$currency.$obj->price.' | ';
echo 'Qty <input type="text" name="product_qty" value="1" size="3" />';
echo '<button class="add_to_cart">Add To Cart</button>';
echo '</div></div>';
echo '<input type="hidden" name="product_code" value="'.$obj->product_code.'" />';
echo '<input type="hidden" name="type" value="add" />';
echo '<input type="hidden" name="return_url" value="'.$current_url.'" />';
echo '</form>';
echo '</div>';
}
如何根据我从用户输入中获得的信息,将数据搜索从 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%'";
关于PHP 根据类型和名称搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491916/