2013-03-05 85 views
0

大家好,我正在研究一个小型的初学者项目,目前我正在HTML表格中的网页上显示两个单独的表数据,但我在数据上遇到了一些问题。有一个凭证表和一个用户首先输入凭证的答案表,然后按下按钮以获得将凭证存储在表上的重要信息,并将用户重定向到问题页面,在那里他选择一个选择题,用户选择是保存到一张桌子。所有这些数据都会显示在网页上,但是当显示数据时,每个输入其详细信息的用户都会得到重复的答案。有人能告诉我我哪里出了错? tnx提前为您提供帮助。表中的重复答案

视图

<table border="1"> 


    <tr> 
    <th>Name</th> 
    <th>Second Name</th> 
    <th>Phone</th> 
    <th>Email</th> 
    <th>Answer</th> 
    <th>Comment</th> 
</tr> 
    <?php foreach ($query as $row): ?> 
<tr> 

    <td><?php echo $row->name; ?></td> 
    <td><?php echo $row->second_name; ?></td> 
    <td><?php echo $row->phone; ?></td> 
    <td><?php echo $row->email; ?></td> 
     <td> <?php echo $row->answerA;?> 
     <?php echo $row->answerB;?> 
     <?php echo $row->answerC;?></td> 
    <td><?php echo $row->comment;?><br></td> 

</tr> 

    <?php endforeach; ?> 

</table> 

控制器

function getall(){ 

    $this->load->model('result_model'); 
    $data['query'] = $this->result_model->result_getall(); 
    $this->load->view('result_view', $data); 

    } 

模式

function result_getall(){ 
    return $this->db->select('tblanswers.*,credentials.*') 
       ->from('tblanswers, credentials') 
       ->get() 
       ->result_object(); 

} 
+0

您可能需要按凭证表对结果进行分组。但是我对你如何构建你的查询有点不确定。不应该有一个或多个加入? – jtheman 2013-03-05 11:10:32

+0

我的表daunt之间有任何关系数据我只显示他们作为两个单独的表 – 2013-03-05 11:15:09

+0

你可以解释更多关于如何分组结果? – 2013-03-05 11:15:37

回答

4

您选择了从TBL答案,没有加入任何专栏的证书。你最后得到了一个交叉连接,它将每一行与另一个表中的每一行进行配对。您需要指定tblanswers中的哪些行与证书中的哪些行相关。例如。如果证书中有一个id列,那么您需要在tblanswers中创建一个credentials_id列并输入数据以使它们匹配。你GETALL()应该是这个样子:

function result_getall(){ 
    return $this->db->select('tblanswers.*,credentials.*') 
       ->from('tblanswers') 
       ->join('credentials', 'tblanswers.credentials_id = credentials.id') 
       ->get() 
       ->result_object(); 

} 

它说

join('credentials', 'tblanswers.credentials_id = credentials.id') 

指定两个表是如何关联的线。

假设琼斯先生输入他的凭证,他们被保存在ID 72的证书表中,然后他输入他的答案。您需要确保在保存它们时,在答案表的credentials_id列中输入“72”。这表示这些答案属于琼斯先生。当你使用上面指定的连接运行查询时,它将返回琼斯先生的证书,反驳琼斯先生的答案。

+0

tnx用于回答。可以告诉我或给我一个示例如何指定tblanswers中的哪一行与证书相关? – 2013-03-05 11:22:46

+0

编辑答案试图使这更清晰。 – naomi 2013-03-05 11:30:30

+0

会将外键添加到我的表中解决此问题? – 2013-03-05 11:34:19