php中多表的联合搜索

php中多表的联合搜索,php,mysql,sql,Php,Mysql,Sql,您好,genius程序员可以帮助我找出我在联合搜索中的错误mysqli_fetch_数组中的错误期望参数1是mysqli_result,布尔值 <?php if(isset($_GET['search'])) { $search_key = $_GET['search']; $sql_search = "(SELECT lastname, firstname, 'organization_member' as type FR

您好,genius程序员可以帮助我找出我在联合搜索中的错误mysqli_fetch_数组中的错误期望参数1是mysqli_result,布尔值

<?php 
        if(isset($_GET['search'])) {
            $search_key = $_GET['search'];
            $sql_search = "(SELECT lastname, firstname, 'organization_member' as type FROM org_member WHERE lastname LIKE '%" . 
                            $search_key . "%' OR firstname LIKE '%" . $search_key ."%')
                            UNION
                            (SELECT title, 'fedetated_member' as type FROM fedetated_members WHERE title LIKE '%" . 
                            $search_key . "%')";

            $query_search = mysqli_query($CONNECTION, $sql_search);
        }
    ?>

    <div class='body_wrap'>
        <div class='inner_wrap'>
            <span class='text_black_big'>SEARCH RESULT FOR: <?php echo $_GET['search']; ?></span>
                <table>
                <?php while($row_search = mysqli_fetch_array($query_search)) { ?>
                    <tr>
                        <td><br><?php echo $row_search['organization_member'] ?><br><br><?php echo $row_search['fedetated_member'] ?><br></td>
                    </tr>
                <?php } ?>
                </table>
        </div>
    </div>
将两个或多个查询的结果合并到单个结果集中 它包括属于联合中所有查询的所有行。 联合操作不同于使用合并列的联接 两张桌子。以下是组合以下各项的基本规则: 使用UNION的两个查询的结果集:查询的数量和顺序 所有查询中的列必须相同。数据类型必须是 兼容


您的查询字符串不正确,因此$query\u搜索变量等于FALSE:

$query\u search=mysqli\u query$CONNECTION,$sql\u search

SELECT语句必须选择相同类型的列,并且第一个SELECT语句中的列名将用作返回结果的列名。
您可以在此处找到更多信息:

union应该是两个具有相同列数的查询,特别是数据类型echo$sql\u搜索并调试打印的查询或显示在此处…添加到@maSTArHiAn后,您将需要单独执行查询,或者您可以通过在第二个查询选择语句(例如select、title、,“Federated_成员”作为Federated_成员的类型,当。。。或者输入第一个查询的名字和姓氏,以便将它们作为一个字段返回。从组织成员中选择CONCAT_WS“”、firstname、lastname作为“全名”,“organization_member”作为类型谢谢大家提供的信息。