2013-08-30 52 views
0

我在我的網站上有一個搜索框,效果很好,但我希望它搜索表中的多個字段。例如,表格中有3個部分,分別標記爲text1,text2和text3。下面的代碼適用於單個字段的搜索,但並不是全部都是3.MySQL PHP搜索多字段字段

 $sqlcommand = "SELECT id, page_title, url, text1, text2, text3 FROM pages WHERE text1 LIKE '%$searchquery%'"; 

我試過改變它;

 $sqlcommand = "SELECT id, page_title, url, text1, text2, text3 FROM pages WHERE text1, text2, text3 LIKE '%$searchquery%'"; 

但是這並沒有產生結果,我試過了;

 $sqlcommand = "SELECT id, page_title, url, text1, text2, text3 FROM pages WHERE (text1, text2, text3) LIKE '%$searchquery%'"; 

其他人建議,但是這產生了一個錯誤。

幫忙感激地收到了。

理查德

回答

1

您可以嘗試concat'ing在一起:

$sqlcommand = "SELECT id, page_title, url, text1, text2, text3 
        FROM pages 
        WHERE concat(text1, ':', text2, ':', text3) LIKE '%$searchquery%'"; 

我還包含一個分隔符,因此搜索查詢應該只匹配一個字段。

+0

點上。謝謝 –

1
$sqlcommand = " 
    SELECT id, page_title, url, text1, text2, text3 
    FROM pages 
    WHERE text1 LIKE '%$searchquery%' OR text2 LIKE '%$searchquery%' OR text3 LIKE '%$searchquery%' 
"; 

^這是否工作?

0

搜索多個列的表格,請確保您有WHERE子句中引用的,由運營商和失散的所有列,如下所示:

 
select id, page_title, url, text1, text2, text3 
FROM pages 
WHERE text1 LIKE '%searchfield1%' 
    AND text2 LIKE '%searchfield2%' 
    AND text3 LIKE '%searchfield3%' 
當然

,你要放置這個查詢在你的php格式腳本里面,可能是這樣的:

$ sqlcommand =「..................」;就像你在你的問題中一樣。

另外,如果您正在搜索的完全相同的輸入領域的所有三列,你可以使用:

 
select id, page_title, url, text1, text2, text3 
FROM pages 
WHERE text1 LIKE '%searchquery%' 
    AND text2 LIKE '%searchquery%' 
    AND text3 LIKE '%searchquery%'