用于查看页面

时间:2018-02-03 00:14:41

标签: php mysql codeigniter

所以我正在处理这个/这些问题,并且最近使用codeigniter进行了很多工作..

所以,我有这些特定的表格:
sect_tbl ----------- sub_tbl

sect_id ----------- sub_code
2 -------------------- ST20
3 -------------------- AS13
3 -------------------- DA11
1 -------------------- PE40
2 -------------------- SE10
3 -------------------- PE20
4 -------------------- RT40

我在sub_tbl中创建了sect_id外键。

显示 - 侧边菜单:

sect_ids的链接:
1
2
3
4

我想这样做,如果我点击sect_id 3的链接,我将被重定向到一个新页面及其相应的sub_code集合 - " AS13,DA11,PE20&#34 ;如上表所示。

预期结果如下:

sub_code (在sect_id-3中)

| AS13 |

| DA11 |

| PE20 |

型号: (绝对不对)

 function fetch_view($data){

    $query = $this->db->query("SELECT a.sub_code, a.sub_name, a.sect_id, 
        b.block_name,       b.year_level FROM subject as a JOIN section as b 
         WHERE a.sect_id = b.sect_id ");
       return $query->result();
       }

控制器:

 $data["subjects"] = $this->view_model->fetch_view($this->session-
    userdata('user_id'));

查看:(由于我无法通过foreach循环进一步解决这个问题)

    <?php
       foreach ($subjects as $row) {
    ?>

    <a href=""> <?php echo $row->year_level.$row->block_name; ?></a>

   <?php
     }
    ?>

- &GT;我尝试用href工作来重定向我,然后能够动态地查看它但它适得其反。非常感谢那些可以腾出时间分享解决方案的人。

1 个答案:

答案 0 :(得分:0)

如果你想要所有子代码,其中sect ID = 3

$sect_id = 3;

我简化了您的查询,但主要问题是您没有使用“on x = y”来加入

$query = $this->db->query("
    SELECT 
        sec.year_level,
        sec.block_name,
        sub.sub_code,  
    FROM section as sec
    JOIN subject as sub
    ON sec.sect_id = sub.sect_id 
    WHERE sec.sect_id = ?
", [ $sect_id ] );

if( $query->num_rows() > 0 )
    return $query->result();

return [];

然后,因为我没有你的实际表格模式,我无法建议你的观点是否正确,但总的来说,这样的事情应该有效:

$this->load->helper('url');

foreach( $subjects as $row )
{
    echo anchor( 'subs/show/' . $row->sub_code, $row->year_level . $row->block_name );
}

另外,作为旁注,请尝试始终遵循具有适当缩进的代码样式。它使错误的东西更突出,更容易修复。