【问题标题】:Query result printing in categorized list分类列表查询结果打印
【发布时间】:2012-11-14 16:16:05
【问题描述】:
<?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?

【问题讨论】:

    标签: php mysql sql select union


    【解决方案1】:

    试试这个:

    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
    

    您希望如何将类别与结果集进行映射?

    【讨论】:

    • 这个逻辑是可行的.. 但问题是我如何打印上述程式化格式的结果集?
    • 你可以通过编程轻松做到这一点。它会比查询更容易实现。
    • 这个列表我用来显示 jquery 自动完成框。现在我希望将自动完成功能的结果分为几类..
    • 我的问题是自动完成框同时显示科目、导师姓名、机构名称、城市的所有值。这就是为什么我需要显示自动完成功能的结果以分类。例如,如果用户开始输入“an”,自动完成将显示 4 个类别,每个类别中都有项目。如果用户想要在“主题”或“导师”或“城市”或“研究所”类别下的列表中选择一项。我想做的是类似于 facebook 搜索选项..
    • 在 while 循环中为 col = 主题或 col = 导师等添加 case 语句,并添加特定的 li 标签。您有 5 个案例是:全部、学科、导师、城市、机构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多