2016-04-15 68 views
2

我想創建會計師目錄,我想創建和高級搜索的形式,如:條件搜索表單

如果用戶輸入:拉拉並沒有會計師與此名稱我想建議會計師,他的名字包含'L''A''R'?

所以問題是如何創建這個使用SQL查詢,因爲我不知道用戶輸入的字母數量?

+3

它是一個編程選擇,無論何時用戶點擊搜索,然後首先進行全文匹配。如果該查詢返回零行,那麼您嘗試使用名稱的前三個字母進行另一個查詢: select * from tbl其中名稱如'%'。 substr($ _ POST ['name'],0,3) 等等。 – vishwakarma09

回答

1

如果找不到用戶,請使用str_split將字符串拆分爲1個字母的數組,然後遍歷數組並使用LIKE'%$ string%'查詢它們。

// If user not found 
if(!(mysqli_num_rows > 0)) { 
    $array = str_split($search); 
    // If search is two separated words, to remove space and reorder array, use this line instead: 
    // $array = str_split(str_replace(" ", "", $array)); 

    for($i = 0; $i < count($array); $i++) { 
     $char = $array[$i]; 
     $sql = "SELECT * FROM table WHERE name LIKE '%$char%'"; 
     $result = mysqli_fetch_array(mysqli_query($con, $sql)); 
     echo $result['name']; 
    } 
+0

這有助於我有一個想法,我將添加4個循環搜索4,3,2和1個字母,尼斯 –

+0

你也可以這樣做,但是,您必須考慮用戶的搜索長度是否超過10個字符,您的腳本可能需要較長時間才能加載。樂於幫助。 – Charas