2012-11-26 55 views
0

我創建了這個查詢來顯示我的自動完成框與jQuery。它工作完美。高級自動完成列表

<?php 

require_once('database.php'); 

if(isset($_POST['queryString'])) { 

    $queryString = $dbc->real_escape_string($_POST['queryString']); 

    if(strlen($queryString) >0) { 
     $q = "SELECT keyword 
       FROM (
        SELECT tname AS keyword FROM t 
        UNION 
        SELECT sname AS keyword FROM sub 
        UNION 
        SELECT cname AS keyword FROM c 
        UNION 
        SELECT iname AS keyword FROM i 
       ) s 
       WHERE keyword LIKE '%$queryString%' 
       LIMIT 10"; 

     $r = mysqli_query ($dbc, $q); 

     if($q) { 
      while ($row = mysqli_fetch_array($r, MYSQL_ASSOC)) { 
       echo '<li onClick="fill(\''.$row['keyword'].'\');">'.$row['keyword'].'</li>'; 
      } 
     } else { 
      echo 'ERROR: There was a problem with the query.'; 
     } 
    } else { 

    } 
} else { 
    echo 'There should be no direct access to this script!'; 
} 

?> 

與此查詢顯示自動完成列表與科目,導師名稱,城市根據關鍵字。現在我需要修改具有更多值的自動完成列表。例如,我想在列表中顯示一個導師姓名,以顯示他/她的當前城市,他/她的個人資料圖片等。這與Facebook搜索類似。

這是我的城市和地址表

# -------------- 
# Address Table 
# -------------- 

CREATE TABLE address (
address_id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT, 
address_one VARCHAR(40) NOT NULL, 
address_two VARCHAR(40) DEFAULT NULL, 
city_id INT(4) UNSIGNED NOT NULL, 
PRIMARY KEY (address_id), 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 


# -------------- 
# City Table 
# -------------- 

CREATE TABLE city(
city_id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT, 
city_name VARCHAR(30) NOT NULL, 
district_id INT(2) UNSIGNED NOT NULL, 
PRIMARY KEY (city_id), 
UNIQUE (city_name) 
) ENGINE=MyISAM; 

我怎樣才能做到這一點?

+0

我不是在談論這個問題,但對其他問題你都問,並沒有接受一個答案。檢查這裏的問題http://stackoverflow.com/users/1543817/user1543817?tab=questions – Sudar

+0

行..我做到了..謝謝 – ugnuku

回答

0

我覺得有2個選項。

我相信你應該調整你的查詢,因爲現在你在t表和子表中查看是否出現了searchword。但是,您的查詢太短,以至於您沒有可用的匹配配置文件信息,只是您執行搜索的列。

Ofcourse您不想查詢來自甚至不符合您的標準的行的大量數據。另一方面,在執行搜索之後執行大量查詢操作並不方便。但是,由於您限制爲10,所以應該沒問題。

查詢更改爲select name, birthday, gender, imgdata from t等。

+0

我需要顯示城市與導師名稱或學院名稱..我添加了我的表結構的問題..你能顯示我怎樣才能選擇查詢? – ugnuku