2012-11-26 48 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