我是PHP和MySQL的新手。尝试为我的网站创建一个公共搜索字段,该字段搜索具有相同关键字的不同结构的3个不同表。 3个表是课程,讲座,常见问题。
我的代码类似: `
<?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";
}
}
?>
`
但不幸的是,它只在第一个表(讲座)中搜索,即使其他表中也有匹配。我搜索了很多,但没有找到任何解决方案。