UNION在php中搜索多个表

时间:2017-03-22 01:38:28

标签: php mysql sql

Hello天才程序员可以帮我解决UNION搜索错误中的错误“mysqli_fetch_array()期望参数1为mysqli_result,boolean”。

<?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>

2 个答案:

答案 0 :(得分:0)

https://msdn.microsoft.com/en-us/library/ms180026.aspx

  

将两个或多个查询的结果合并到一个结果集中   包括属于union中所有查询的所有行。   UNION操作与使用组合列的连接不同   从两张桌子。以下是组合的基本规则   使用UNION的两个查询的结果集:数字和顺序   所有查询中的列必须相同。数据类型必须是   兼容。

答案 1 :(得分:0)

您的查询字符串不正确,因此$ query_search变量等于FALSE:

  

$ query_search = mysqli_query($ CONNECTION,$ sql_search);

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