Php, codeigniter, mysql


Php, codeigniter, mysql

如何从学生姓名前面的数据库表中检索每个科目的学生分数。

我的模型

public function getscore($class, $term, $session)
{
    $query = $this->db->query("SELECT scores FROM allscores WHERE   class ='$class' AND term ='$term' AND session ='$session' AND       scores !=0");
    return $query;
}

控制器

public function showscores()
{
    $class=$this->input->post('classes');
    $term=$this->input->post('term');
    $session=$this->input->post('session');
    $data['query_scores'] = $this->model->getscore($class,$term,    $session);
    $this->load->view('scoresheet', $data);
}

查看页面

<table>
    <tr>
    <?php 
        foreach ($query_scores->result() as $row)
        {
    ?>
            <td><?php echo $row->scores; ?></td>
    <?php 
        } 
    ?>
    </tr>
</table>

注意:学生姓名水平列在d页左侧,科目姓名垂直显示为标题。 我的挑战是在每个学生的 d 科目名称下显示每个科目的分数。 如能提供这方面的协助,将不胜感激。

public function getscore($class, $term, $session)
{
    $query = $this->db->query("SELECT scores FROM allscores WHERE   class ='$class' AND term ='$term' AND session ='$session' AND       scores !=0");
    return $query-result();
}

使用 result() 格式化和显示数据库中的内容。

使用下表格式显示主题名称

<table>
    <thead>
     <tr>
       <td> SUB1 </td> <td> SUB2 </td> <td> SUB3 </td> 
     </tr>
    </thead>

现在将您的代码用于相应内容。用于显示主题分数的确切 PHP 代码将取决于您的数据库结构。如需更多说明,请分享您的数据库表结构。

试试这个。

型:
注意:更改字段名称和查询结构以匹配您的字段名称和查询结构

通常,这将需要连接,但这是您获得想法的基本示例

    public function getscore($class, $term, $session){
         $query = $this->db->query("SELECT  scores,student_id ,student_name, subject_id,subject_name , FROM allscores WHERE  class ='$class' AND term ='$term' AND session ='$session' AND  scores !=0");
         return $query; 
    }

控制器:

    public function showscores(){
       $class=$this->input->post('classes');
       $term=$this->input->post('term');
       $session=$this->input->post('session');
       $data['query_scores'] = $this->model->getscore($class,$term,    $session);
       // create array to hold the new organized data;
       $list = array();
       // list['scores'] will hold the student scores;
       // list['students']  = will hold the student names
       // list['subjects'] =  will hold the subjects names
      // loop throught the result 
      foreach ($query_scores->result() as $row){
         $list['scores'][$row->student_id][$row->subject_id] = $row->scores;
         $list['students'][$row->student_id]= $row->student_name;
         $list['subjects'][$row->subject_id]= $row->subject_name;
      }
      $this->load->view('scoresheet', $list);
    }

查看页面:

    <table>
      <tr>
     <?php 
       foreach ($subjects as $subject){
         echo "<td>".$subject."</td>";  // will display subjects names on the first row
       }
     ?> </tr> <?php
       $column = 0;
       foreach ($scores as $key=>$element){
         echo "<tr>"; 
         echo "<td>".$students[$key]."</td>"; // will display student names on the first col
         foreach ($element as $subKey=>$subelement){
            echo "<td>".$subelement."</td>";
         }
         echo "<tr>";
     <?php 
       } ?>
 </table>