使用INNER JOIN和WHERE获取数据库信息的逻辑错误,PHP

时间:2018-05-06 16:51:57

标签: php mysql sql inner-join

这是一个大学求职申请的自我测试,所以我不一定要找到我需要的确切陈述,而是试图得到一个关于看什么方向的提示,我无法访问实际数据库来查看它:

这个问题要求我们使用JOIN从一个表中选择有关用户的数据,这取决于他们是否在另一个表上保留了他们的帐户,问题也只是要求学院的学生通过$ college参数给出。

我对PHP很陌生,所以我一直在使用w3schools作为指导,我已经完全使用了他们的INNER JOIN示例,但它一直给我一个'未知列E(或者由$ college给出的任何其他字母) 'where clause'',或者如果我将'“更改为'',它会更改为'where clause'中的'unknown column $ college

这是我的代码:

<?php

function hasHold($college)
{
    $query = "SELECT interview_student.Student_ID, 
    interview_student.Last_Name, 
    interview_student.First_Name, 
    interview_student.College, 
    interview_account_hold.Amount_Due 
       FROM interview_student INNER JOIN interview_account_hold 
       ON interview_student.Student_ID = interview_account_hold.Student_ID 
       WHERE interview_student.College = $college";

    return $query;
}
?>

假设访问上一个问题的interview_student表...

+------------------------------------------------------+
| interview_student                                    |
+------------+-----------+------------+---------+------+
| Student_ID | Last_Name | First_Name | College | GPA  |
+------------+-----------+------------+---------+------+
| 463127376  | Willemsen | Lucas      | A       | 2.37 |
+------------+-----------+------------+---------+------+

会计办公室向我们提供了一份学生名单,这些学生目前因未支付的学费而暂停帐户。它们仅按ID和应付金额列出;并且只有在他们有应付金额时才会列出。没有到期金额的学生没有列出。

+-------------------------+
| interview_account_hold  |
+-------------------------+
| Student_ID | Amount_Due |
+------------+------------+
| 416996983  | 3,403.20   |
| 287856417  | 2,318.13   |
| 537713123  | 3,678.06   |
| 187296716  | 2,202.83   |
| 145768187  | 2,379.32   |
+------------+------------+

编写一个名为hasHold的函数,它接受一个参数($ college)并返回一个字符串(一个SELECT语句)。

传递给该函数的参数将是大学代码(例如农业的'A')。

返回的字符串应该是一个SELECT语句,它将返回给定大学中拥有帐户的所有学生。生成的查询应按以下顺序返回以下字段: 学生证,姓氏,名字,学院,到期金额。

该函数再次将SELECT语句作为字符串返回。您不需要处理实际连接,提交查询,解析结果等。只需返回一个字符串。

0 个答案:

没有答案