我需要根据一个表过滤数据,但我不知道php mysql中select函数的正确用法。下面的代码显示了我想要做的事情,但我认为你可以使用多个SELECT。
$query_Student = "SELECT Project_Title, Project_Lecturer FROM projects WHERE Project_id =
(SELECT Proj_id FROM project_course WHERE Cour_id = (SELECT Course_id from courses WHERE
Code = (SELECT Course FROM users WHERE Username = ".$_SESSION['MM_Username']."))"
任何人都可以为我需要写的东西提供任何帮助吗?
答案 0 :(得分:2)
你想要做的事情对我来说并不是很清楚,但为了使你的查询工作,你需要在$_SESSION['MM_Username']
附近加上单引号,就像gogowitsch已经说过的那样。
还缺少另一个关闭的paranthese。所以你的查询应该是这样的:
$query_Student = "SELECT Project_Title, Project_Lecturer FROM projects WHERE Project_id =
(SELECT Proj_id FROM project_course WHERE Cour_id = (SELECT Course_id from courses WHERE
Code = (SELECT Course FROM users WHERE Username = '".$_SESSION['MM_Username']."')))"
<强>可是... 强>
这不是一个写得很好的查询。
我现在只是猜测,但也许这就是你要找的东西:
SELECT
p.Project_Title,
p.Project_Lecturer
FROM projects p
INNER JOIN project_course pc ON p.Project_id = pc.Proj_id
INNER JOIN courses c ON pc.Cour_id = c.Course_id
INNER JOIN users u ON c.Code = u.Course
WHERE u.Username = 'yourUserName';
如果没有,请向我们展示您正在使用的表格(对于您正在使用的每个表格执行SHOW CREATE TABLE projects;
等等,并在此处发布)以及您期望的输出,然后我们可以提供帮助。
答案 1 :(得分:0)
您可能需要在用户名周围添加引号。 $_SESSION['MM_Username']
可以成为字符串吗?