【问题标题】:how to display data using separate tables in codeigniter view如何在 codeigniter 视图中使用单独的表显示数据
【发布时间】:2015-03-09 17:41:38
【问题描述】:

我还是 CodeIgniter 的新手,我想在不同的表格中按学期和学年分开成绩。我该怎么做?

这是我的模型:

public function result_getGrades($studentid)
    {
            $sql="  SELECT g.studentid, sb.subjectcode, s.description, si.firstname,sb.module, sb.sy, sb.sem, g.final 
                    FROM grades g 

                    JOIN subjectblocking sb ON g.blockcode=sb.blockcode

                    JOIN subjects s ON sb.subjectcode=s.subjectcode

                    JOIN studentinfo si ON g.studentid=si.studentid
                    WHERE g.studentid='$studentid'
                    ORDER BY sb.sem DESC, sb.sy DESC;
                    ";
            $result = $this->db->query($sql);
            $result = $result->result();
            return $result;   
    }

这是我的观点:

<table class="table table-bordered">

                    <tr>
                       <th>SY</th>
                       <th>SEM</th>
                       <th>SUBJCODE</th>
                       <th>SUBJECT DESCRIPTION</th>
                       <th>GRADE</th>
                    </tr>

                <?php foreach ($result as $row){ ?>
                    <tr>
                        <td><?php echo $row->sy;?></td>
                        <td><?php echo $row->sem;?></td>
                        <td><?php echo $row->subjectcode;?></td>
                        <td><?php echo $row->description;?></td>
                        <td><?php echo $row->final;?></td>
                    </tr>           
                <?php } ?>

我确实希望有人可以帮助我解决这个问题。我非常需要一个解决方案。提前致谢!

顺便说一下,这是我的控制器:

public function getGrades() 
{
        $studentid = $this->session->userdata('studentid');
        $data['studentid'] = $studentid;
        $this->load->view('layout/navbar');

        $this->load->model('Umodel');
        $data['result'] = $this->Umodel->result_getGrades($studentid); 
        $this->load->view('pages/grades', $data);
        $this->load->view('layout/footer_student');
}

表格应该是这样的: http://imgur.com/BAP4bI5

【问题讨论】:

  • 通过分隔等级是指两个具有相同等级的不同表吗?这些在您的数据库中的情况如何?
  • @ValentinValentin 不,我的意思是将成绩分成不同的表格,每个表格都根据学期和学年进行排序。 :)
  • 你的控制器在哪里?
  • 您能否提供一个示例,说明您的最终结果应该是什么样子?
  • 我已经添加了控制器和关于表格应该如何像@CodeGodie 的链接

标签: php sql codeigniter views


【解决方案1】:

您可以创建视图,而不是拆分数据。

    CREATE VIEW 2015_Fall AS
    SELECT g.studentid, sb.subjectcode, s.description,
           si.firstname,sb.module, sb.sy, sb.sem, g.final
    JOIN subjectblocking sb ON g.blockcode=sb.blockcode
    JOIN subjects s ON sb.subjectcode=s.subjectcode
    JOIN studentinfo si ON g.studentid=si.studentid
    WHERE g.studentid='$studentid'
    AND  sb.sem = 'Fall' AND sb.sy='2015'
    ORDER BY g.final DESC;

这将为 Fall 创建一个视图,让您可以像查看单独的表一样查看数据。但是,您的数据仍然本地化在同一个表中。您只有一个单独的数据视图。您可能希望为每个学期/年创建其中一个。您可以像普通表格一样对视图进行排序和排序。

【讨论】:

    【解决方案2】:

    我会重新排列您的结果以在您的控制器中创建一个漂亮的数组,然后将该数组发送到您的视图以便于解析。试试这个:

    控制器:

    public function getGrades() {
        $studentid = $this->session->userdata('studentid');
        $data['studentid'] = $studentid;
        $this->load->view('layout/navbar');
    
        $this->load->model('Umodel');
        $result = $this->Umodel->result_getGrades($studentid);
        $final = array();
        $final["semesters"] = array();
        foreach ($result as $res) {
            if (!isset($final["semesters"][$res->sem])) {
                $final["semesters"][$res->sem] = array();
            }
            array_push($final["semesters"][$res->sem], $res);
        }
        $data['result'] = $final;
    
        $this->load->view('pages/grades', $data);
        $this->load->view('layout/footer_student');
    }
    

    查看:

    <?php foreach ($result['semesters'] as $sem) { ?>
        <table class = "table table-bordered">
            <tr>
                <th>SY</th>
                <th>SEM</th>
                <th>SUBJCODE</th>
                <th>SUBJECT DESCRIPTION</th>
                <th>GRADE</th>
            </tr>
    
            <?php foreach ($sem as $row) { ?>
                <tr>
                    <td><?= $row->sy; ?></td>
                    <td><?= $row->sem; ?></td>
                    <td><?= $row->subjectcode; ?></td>
                    <td><?= $row->description; ?></td>
                    <td><?= $row->final; ?></td>
                </tr>           
            <?php } ?>
        </table>
    
    <?php } ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      相关资源
      最近更新 更多