我正在处理我网站的过滤器。
我有4张桌子:
$(function() {
var timer = null;
run();
function run(){
var cars = new Array("Saab", "Volvo", "BMW");
console.log(cars[global]);
global++;
if (global == 3) {
global = 0;
}
if (timer !== null) {
clearInterval(timer);
}
timer = setInterval(run, parseInt(wait[global]));
}
});
我现在有3个过滤器,带有select标签:
用户可以使用一个或多个过滤器进行过滤。
那么我应该用什么查询来显示更多相关数据?
答案 0 :(得分:0)
如果您正在获取这些(3)过滤器的id
,则可以使用WHERE
和LIKE
条款。这是一个开始:
$category = !empty($_POST["category"]) ? $_POST['category'] : "";
$course = !empty($_POST["course"]) ? $_POST['course'] : "";
$subject = !empty($_POST["subject"]) ? $_POST['subject'] : "";
$query = "SELECT * FROM content_ref_table
WHERE category_id LIKE '%".$category."%'
AND course_id LIKE '%".$course."%'
AND subject_id LIKE '%".$subject."%'";
如何实现目标有不同的方式。它也可以使用PHP if
s / while
s / etc循环。你也应该考虑速度和安全性来进行查询。
<强> [UPDATE] 强>
如果您正在寻找姓名,那么如果您从其他连接表中外包数据,则应该加入一些。例如:
$category = !empty($_POST["category"]) ? $_POST['category'] : "";
$course = !empty($_POST["course"]) ? $_POST['course'] : "";
$subject = !empty($_POST["subject"]) ? $_POST['subject'] : "";
$query = "SELECT content_ref.title FROM content_ref_table
LEFT JOIN category_ref_table ON content_ref_table.category_id = category_ref_table.category_id
AND category_ref_table.category LIKE '%".$category."%'
LEFT JOIN course_ref_table ON content_ref_table.course_id = course_ref_table.course_id
AND course_ref_table.course LIKE '%".$course."%'
LEFT JOIN subject_ref_table ON content_ref_table.subject_id = subject_ref_table.subject_id
AND subject_ref_table.subject LIKE '%".$subject."%'";
如果您要查找的数据来自联接表,则不必使用WHERE
子句,您可以随时将该条件与连接子句一起使用,但它可以使用OUTER JOIN
子句。与last_modified
并不总是相同的效果。