我是一个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 ";
但我没有结果。
我该怎么做.......
答案 0 :(得分:1)
术语“subquery”和“multi-query”之间存在很大差异。你似乎在混合这些概念。
假设您发布的查询按照您需要的方式工作,您似乎可以用代码替换代码中的$query
值,它的工作方式与您现在的查询一样。 (您可能必须将表名/别名添加到WHERE子句中的字段,以避免歧义。取决于您的表结构。)
在任何情况下,在现有查询之后添加另一个SELECT都不是可行的方法。
我也会像其他人一样,指出旧的MySQL API函数已经过时,并且您的代码充满了安全问题。 - 这些天应该使用PDO或MySQLi准备好的声明。