使用PHP查询具有相同关键字的多个MySQL表(具有不同结构)

时间:2015-09-05 09:35:41

标签: php mysql mysqli

我是PHP和MySQL的新手。尝试为我的网站创建一个公共搜索字段,该字段搜索具有相同关键字的不同结构的3个不同表。 3个表是课程,讲座,常见问题。enter image description here

我的代码类似:     `

<?php
if(isset($_POST['submit'])) {
    //connect to the database
    $mysqli = new MySQLi("localhost","root","password","database");

    $search = $mysqli->real_escape_string($_POST['search']);

    //Query the db
    $result = $mysqli->query("
    SELECT topic, course_id, lect_no, table_id FROM lecture WHERE topic LIKE '%$search%'
    UNION
    SELECT course_name, course_id, table_id FROM course WHERE course_name LIKE '%$search%'
    UNION
    SELECT faq_link, table_id FROM faq WHERE faq_key LIKE '%$search%'
    ");

    if($result->num_rows > 0) {
        while($rows = $result->fetch_assoc()) {
            if($result->table_id == 1) {
                $topic = $rows['topic'];
                $course_id = $rows['course_id'];
                $lect_no = $rows['lect_no'];
                ?>
                <a href="http://www.xyz.php?course=<?php echo $course_id; ?>&lect=<?php echo $lect_no; ?>"><?php echo $topic; ?></a>
                <?php           
            } else if ($result->table_id == 2) {
                $course_name = $rows['course_name'];
                $course_id  = $rows['course_id'];
                ?>
                <a href="http://www.xyz.php?course=<?php echo $course_id; ?>"><?php echo $couse_name; ?></a>
                <?php
            } else if($result->table_id = 3) {
                $faq_link = $rows['faq_link'];
                echo $faq_link;
            }   
        }
    } else {
        echo "No Results Found";
    }
}
?>

`

但不幸的是,它只在第一个表(讲座)中搜索,即使其他表中也有匹配。我搜索了很多,但没有找到任何解决方案。

0 个答案:

没有答案