网络搜索过滤器无效

时间:2016-06-06 11:45:56

标签: php mysql

我正在处理我网站的过滤器。

我有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标签:

  • 类别
  • 课程
  • 科目

用户可以使用一个或多个过滤器进行过滤。

那么我应该用什么查询来显示更多相关数据?

1 个答案:

答案 0 :(得分:0)

如果您正在获取这些(3)过滤器的id,则可以使用WHERELIKE条款。这是一个开始:

$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并不总是相同的效果。