我正在尝试实现PHP,SQL和HTML解决方案。这可能是常见的。
我已从头开始编写项目概览系统。现在的状态是我有一个用于USERS的SQL表和另一个用于PROJECTS的表。它可以很好地登录每个用户,也可以列出所有用户的所有项目。
但是为了能够跟踪连接到每个项目的用户,我创建了第三个名为PROJECTMEMBERS的SQL表。它包含行USERS_ID和PROJECTS_ID,它们应该保存用户的ID,并且项目能够跟踪项目成员。我不确定这是否是最好的解决方案但是在另一个线程中发现它并认为它是有道理的。但现在......
我有问题要弄清楚如何在同一mysqli_fetch()
查询中访问不同的SQL表。如何在每个项目中显示USER IMAGE?当前的fetch用于显示所有项目,但我仍然希望显示所有项目,但是每个项目上都有活动用户的图像。
我希望我足够清楚,任何人都可以理解。期待那里的任何帮助。
SQL结构示例:
tbl_USERS tbl_PROJECTS
| id | username | USER_IMG | etc | | id | PROJECTNAME | DATE | etc |
---------------------------------- ----------------------------------
| 1 | XXXX | XXXXXXXX | 1 | | 1 | AAAA | AAAA | 1 |
| 2 | YYYY | YYYYYYYY | 2 | | 2 | BBBB | BBBB | 3 |
| 3 | ZZZZ | ZZZZZZZZ | 1 | | 3 | CCCC | CCCC | 4 |
tbl_PROJECTMEMBERS
| USERS_ID | PROJECTS_ID |
-------------------------
| 1 | 1 |
| 1 | 5 |
| 2 | 1 |
如何在users表中提取USER_IMG时显示:
-------------------------------- --------------------------------
| PROJECTNAME | | PROJECTNAME |
| DATE | | DATE |
| | | |
| | | |
| USER_IMG, USER_IMG | | USER_IMG, USER_IMG |
-------------------------------- --------------------------------
--------------------------------
| PROJECTNAME |
| DATE |
| |
| |
| USER_IMG |
--------------------------------
答案 0 :(得分:0)
由于您有3个表用户和项目以及user_projects并且您只从项目表中获取项目,那么您可以添加第一个查询的连接,您可以在其中获取项目,这可能是这样的
SELECT p。,user。 FROM projects as p INNER JOIN user_projects as up ON up.project_id = p.id INNER JOIN用户 ON users.id = up.user_id
上面我使用了multijoin,其中项目表与user_project连接,user_project与users表连接,在select查询中我们有fetch project和users表。
在上面的查询中,你可能会得到查询,如果同一属性重新进入两个表,如(歧义),所以你可以只是通过alise它跳过错误
答案 1 :(得分:0)
SELECT user.id AS 'User ID', project.id as 'Project ID', project.name as 'Project Name' from user tbl_USERS , project tbl_PROJECTS, userprojects tbl_PROJECTMEMBERS where user.id = userprojects.USERS_ID AND project.id = userprojects.PROJECT_ID
这将是您的mysql查询,它将用户ID作为用户ID,项目ID作为项目ID,项目名称作为项目名称。
你可以在普通的php中访问那些变量并输出你喜欢的。
答案 2 :(得分:0)
这样的东西?
$query = "SELECT a.*, b.* FROM USERS a INNER JOIN PROJECTS b on a.userID = b.userID
RIGHT JOIN USER_PROJECTS c ON a.userID = c.userID
WHERE a.userID = $variable";
$result = $db->Execute($query)
foreach($result as $data){
if($data['userID'] == $data['projectID']){
//do stuff here
}
}