在分类列表中查询结果打印

时间:2012-11-27 04:41:53

标签: php mysql sql select union

<?php

require_once('../lankain.php');

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

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

    if(strlen($queryString) >0) {
        //$query = $dbc->query("SELECT subjects FROM subject WHERE subjects LIKE '$queryString%' LIMIT 10");
        $q = "SELECT keyword, col 
                FROM (
                    SELECT tutor_name AS keyword, 'Tutors' col FROM tutors
                    UNION
                    SELECT subjects AS keyword, 'Subject' col FROM subject
                    UNION
                    SELECT city_name AS keyword, 'City' col FROM city
                    UNION
                    SELECT institute_name AS keyword, 'Institute' col FROM institutes
                ) s
              WHERE keyword LIKE '%$queryString%' 
              LIMIT 10";

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

        if($q) {
        while ($row = mysqli_fetch_array($r, MYSQL_ASSOC)) {

            $col = $row['col'];


        }
        } else {
            echo 'ERROR: There was a problem with the query.';
        }
    } else {

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

?>

我的查询仅选择主题,教师姓名,机构和城市而不选择类别名称。现在我需要根据结果集添加类别名称..

我可以知道是否可以使用PHP?

1 个答案:

答案 0 :(得分:5)

试试这个:

SELECT col, keyword
FROM (SELECT tname AS keyword, 'Tutors' col FROM t
      UNION
      SELECT sname AS keyword, 'Subjects' col FROM sub
      UNION
      SELECT cname AS keyword, 'City' col FROM c
      UNION
      SELECT iname AS keyword, 'Institutes' col FROM i
    ) AS s
WHERE keyword LIKE '%$queryString%' 
LIMIT 10

您希望如何使用结果集映射类别?