大家好,我正在使用codeigniter构建项目管理系统。数据库多表查询和显示结果
我在我的模型中有一个函数来显示一个项目和与之相关的任务。 $ projectId = 1仅用于测试目的。
function getAllProjects($projectId = 1)
{
$this->db->select('*');
$this->db->from('projects');
$this->db->where('projects.projectId', $projectId);
$this->db->join('projectTasks', 'projects.projectId = projectTasks.projectId');
$this->db->join('tasks', 'projectTasks.taskId = tasks.taskId');
$projects = $this->db->get();
return $projects;
}
然后在我看来,我把它显示结果
<?php if($projects->num_rows() > 0): ?>
<table width="100%">
<?php foreach($projects->result() as $p): ?>
<tr>
<td><?php echo $p->projectId; ?></td>
<td><?php echo $p->projectName; ?></td>
<?php foreach($projects->result() as $g): ?>
<td><?php echo $g->taskName; ?></td>
<td><?php echo $g->taskHours; ?></td>
<td><?php echo $g->taskCost; ?></td>
<?php endforeach; ?>
</td>
</tr>
<?php endforeach; ?>
</table>
<?php else: ?>
<p>No projects at this time.</p>
<?php endif; ?>
它返回这个
ID - Project Name - Task Name - Task Hours - Task Cost (**to show you what field is what**)
1 The Range 702 Contact Form 10 100 Custom Logo Desgin 10 100 Custom Login From 5 75
1 The Range 702 Contact Form 10 100 Custom Logo Desgin 10 100 Custom Login From 5 75
1 The Range 702 Contact Form 10 100 Custom Logo Desgin 10 100 Custom Login From 5 75
可有人请告诉我如何使它所以它只显示项目信息一次,然后是与项目关联的每个任务。现在,对于与项目相关的每项任务,都会列出项目及其所有任务。
表
-----------------------
| projects |
-----------------------
| projectId | (Primary)
| projectName |
| projectHours |
| projectDeadline |
| projectStartDate |
| projectTasks |
| projectUsers |
| projectNotes |
| |
-----------------------
-----------------------
| projectTasks |
-----------------------
| projectTasksId | (Primary)
| projectId | (FK project->projectId)
| taskId | (FK tasks->taskId)
| |
-----------------------
--------------------
| tasks |
--------------------
| taskId | (Primary)
| taskName |
| taskHours |
| taskCost |
| |
--------------------
我把这段代码放到我的视图中,它完美地工作。非常感谢你帮助我。 – Hayden
不客气,很高兴我可以帮助。 –