2014-05-06 214 views
0

早上好!MySQL + PhP - 搜索多個詞

想用幾個將在html輸入中傳遞的單詞進行搜索。

例子:

  • 如果輸入"gfilgueiras"將返回3條記錄。
  • 如果輸入"informativo gfilgueiras"將返回2條記錄。
  • 如果輸入"gfilgueiras :: 2"將只返回1條記錄。

我直接搜索viewlogs。

我試過了concat,但沒有成功。

如果我的英語不好,我正在使用翻譯器。

樣本數據:

Screenshot

謝謝大家。

+0

請分享您正在使用的查詢。 –

+0

您希望搜索的訂單是什麼?喜歡 [登錄] ? – Hans

+0

SELECT * FROM viewLogs WHERE concat(ip,login,descricao,data,hora,acao,severidade)REGEXP「gfilgueiras」 –

回答

0

你想要什麼是不可能的,你需要在你的WHERE子句中使用AND,假定搜索詞定界符是空格。

// $searchWord is informativo gfilgueiras 
if(!empty($searchWord)) { 

    // separates the searched word by space and puts it in array, if no space, put in array. 
    $searchWords = strpos($searchWord,' ') !== false ? explode(' ',$searchWord) : array($searchWord); 

    // this is just an example, use sql prepared statement for this 
    $sqlString = "SELECT * FROM viewLogs WHERE concat(ip,login, descricao, data, hora, acao, severidade) REGEXP '$searchWord[0]' "; 

    if(count($searchWords) > 0) { 
     if(isset($searchWords[0])) { 
      foreach($searchWords as $index => $searchWord) { 
       if($index > 0) { 
        // this is just an example, use sql prepared statement for this 
        $sqlString .= "AND WHERE concat(ip,login, descricao, data, hora, acao, severidade) REGEXP '$searchWord'"; 
       } 
      } 
     } 
    } 
} 
0
SELECT * FROM viewLogs WHERE concat(all field you want) REGEXP "gfilgueiras" 
+0

這是工作,但我需要更多的參數 例如:gfilgueiras erro –