簡體   English   中英

mysql選擇查詢所選字段中多個值的1

[英]mysql select query 1 of the multiple values in selected field

我有另一個表單來上傳1個產品的詳細信息,這個產品有多個值(10),但我們說我們選擇New Arrival,Black,White並上傳到數據庫。 所以現在我的數據庫將字段名稱設為'category',其值為New Arrival,Black,White。

現在我想做一個搜索功能,但每當我嘗試運行它時,它就不會顯示結果。 所以我做了2條記錄,其中:

第1記錄,字段類別和值'新到貨'第2記錄,字段類別和值'新到貨,黑色,白色'

當我再次嘗試運行我的代碼時,它確實返回了第一條記錄的結果,我嘗試將相同的記錄復制幾行,結果證明它只能返回類別字段只有1個值的結果。

以下是我的代碼的一小部分內容:

我對類別字段的添加記錄表單輸入是:

add_new.html

<select name="category[]" size="10" multiple="multiple">
<options>New Arrival</options>
<options>Black</options>
<options>White</options>
</select>

add_process.php

$category = implode(", ", $_POST['category']);
$strSQL = "INSERT INTO products_list (category) VALUES ('$category')";

search_form.html

<input type="text" name="search_text" />
<input type="submit" name="submit" />

search_process.php

$category = mysql_real_escape_string($_POST['product_category']);
$select = mysql_query("select image1, image2, image3, image4 from products_list WHERE category IN ('new arrival') ORDER BY id ASC");

while($row=mysql_fetch_array($select)) {

    echo $row['image1'];
    echo $row['image2'];
    echo $row['image3'];
    echo $row['image4'];

}

要重復我的問題,如何在該類別字段中獲取包含(所需值)的行的結果?

接下來的問題是,類別值僅作為“新到貨”存儲在數據庫中,如果我只鍵入“到達”而不是全名,如何獲得返回結果? 目前,如果我只輸入'到達',它也不會返回任何結果。

希望你們明白我想說的話。 先謝謝你們。

塞爾說:

$select = mysql_query("select image1, image2, image3, image4 from products_list WHERE category like '%new arrival%' ORDER BY id ASC");

為了便於參考,我在這里解釋。

$catsearch = $_POST["category"]; 
$keywords = explode(' ', $catsearch);  //if keywords entered is "white black new", will convert to array of "white","black","new". The delimiter here is the space.
$keywordsBits = array(); 
foreach ($keywords as $keyword) { 
          $keyword = trim($keyword); 
          if (!empty($keyword)) { 
                $keywordsBits[] = "category LIKE '%$keyword%'"; 
          } 
} 

$result = mysql_query("SELECT * FROM products_list WHERE ".implode(' OR ', $keywordBits));

這將導致類似的查詢

SELECT * FROM products_list WHERE category LIKE '%white%' OR category LIKE '%black%' OR category LIKE '%new%'

如果你想用“,”分隔關鍵字,你可以使用

$keywords = explode(',', $catsearch);  //if keywords entered is "white,black,new arrival", will convert to array of "white","black","new arrival". The delimiter here is the comma.

謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM