PHP 根据类型和名称搜索

标签 php mysql

我很抱歉标题不好,但我不知道更好的选择。

目前我正在创建一个搜索引擎来获取产品详细信息。我有 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/

相关文章:

mysql - 'where' 放在哪里?

mysql - 在同一个 Rails 应用程序中同时使用 mongodb 和 mysql 是否有意义?

php - 通过id更新mysql

php - 一次发送多个 POST 请求

php - 为什么我应该在付款请求后放置 sleep 功能以获取 Paypal 交易 ID?

PHP数组组合

python - mysql 和 sqlalchemy with_lockmode ('update' ) 它是如何工作的?

php - 网络操作系统实用了吗?

javascript - 搜索后去掉空格

mysql - VB.net与MYSQL5连接