从多个表中进行Php Multi查询搜索

时间:2015-05-10 01:15:19

标签: php mysql

我是一个php初学者,我在尝试在php中使用多个查询时遇到了一个问题。

SELECT student.id, student.name, fee_slip.payamount, fee_slip.time, student.class
FROM student
LEFT JOIN fee_slip
ON student.id=fee_slip.student
where (fee_slip.student) is null

这是一个工作正常的代码,没有任何错误给出结果。 但现在我想更动态地制作它。

我有一个代码也工作正常,但我在单个表上使用它是代码

   $query = "SELECT  id, name,  std_reg_number, class, section  FROM student  where id IS NOT NULL ";

        if ( $name !="" ){
            $query .= " AND `name` LIKE '".$name."%'"; // id is greater then 
         }


        if ( $status !="" ){
            $query .= " AND `status` LIKE '".$status."%'"; // id is greater then 
         }


          if ( $class !="" ){
            $query .= " AND class IN($class) ORDER BY class DESC"; // Selecting class 
         }

         if ( $section !="" ){
            $query .= " AND section IN($section)"; // selecting section
         }


         if ( $sort !="" ){
            $query .= " ORDER BY $sort ASC"; // Selecting religion 
         }

$result = mysql_query($query);

现在我尝试使用子查询

$query .= " SELECT  fee_slip.student_id,  fee_slip.std_reg_number, fee_slip.payamount, fee_slip.totalamount ";

但我没有结果。

我该怎么做.......

1 个答案:

答案 0 :(得分:1)

术语“subquery”和“multi-query”之间存在很大差异。你似乎在混合这些概念。

假设您发布的查询按照您需要的方式工作,您似乎可以用代码替换代码中的$query值,它的工作方式与您现在的查询一样。 (您可能必须将表名/别名添加到WHERE子句中的字段,以避免歧义。取决于您的表结构。)

在任何情况下,在现有查询之后添加另一个SELECT都不是可行的方法。

我也会像其他人一样,指出旧的MySQL API函数已经过时,并且您的代码充满了安全问题。 - 这些天应该使用PDO或MySQLi准备好的声明。