CodeIgniter数据与错误弹出消息不匹配



我正在尝试执行错误弹出消息,但是在我从Google做了很多研究之后,所有教程对我不起作用。在这个项目中,我使用" RN"one_answers" RN,名称,D.O.B,年龄,性别,种族,宗教"搜索。现在,我想设置" RN"的验证。例如:如果'rn'在数据库中的数据不匹配,则会出现错误消息。(对不起,我的英语破损,因为英语不是我的母语)。
这是控制器:

<?php
class Patient extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->helper('form');
        $this->load->model('Patient_model');
    }
    public function index()
    {
        $data['content'] = 'patient/search_form';
        $data['title']="SEARCH";
        $data['sub']='SEARCH PATIENT';
        $this->load->view("design/index",$data);
    }
    public function execute_search()
    {
        $search_term = $this->input->post('search'); 
        $data['results'] = $this->Patient_model->get_results($search_term);
        $this->load->view('patient/search_results',$data);
    }

}


这是模型:

<?php
class Patient_model extends CI_Model {
    public function get_results($search_term='default')
    {
        // Use the Active Record class for safer queries.
        // $this->load->helper('share_function');
        $this->db->select('lifeline.pesakit.rn,lifeline.pesakit.nama,lifeline.pesakit.tarikhlahir,lifeline.jantina.nama as jantina,lifeline.agama.nama as agama,lifeline.bangsa.nama as bangsa');
        $this->db->from('lifeline.pesakit as pesakit');
        $this->db->join('lifeline.jantina','lifeline.jantina.kod = lifeline.pesakit.jantina');
         $this->db->join('lifeline.agama','lifeline.agama.kod = lifeline.pesakit.agama');
          $this->db->join('lifeline.bangsa','lifeline.bangsa.kod = lifeline.pesakit.bangsa');
        $this->db->where('rn',alphaToNumber($search_term));
        $query = $this->db->get('');
        // Return the results.
        return $query->result_array();
    }

}

这是search_form.php的视图:

    <?php $this->load->view('template/header');?>
    <div class="container">
    <div class="panel panel-info">
          <div class="panel-body">
    <?php
        echo form_open('index.php/patient/execute_search');
        echo form_input(array('name'=>'search'));
        echo form_submit('search_submit','Submit');

    ?>
        </div>
        </div>
    </div>
    <?php $this->load->view(
'template/footer');?>

这是search_results.php的视图:

<?php $this->load->view('template/header');?>
<div class="container">
<div class="panel panel-info">
      <div class="panel-heading">Patient Demographic</div>
      <div class="panel-body">
        <div class="form-group">
        <?php
            $no=0;
            foreach ($results as $row):
            $no++;
            ?>
            <table align="center" length="200" border='0' cellpadding='5' cellspacing='6' style="font-family:arial;">
            <tr align='left' >
                <th>RN</th> <th> :</th> <th style="font-weight: normal;"><?php echo numberToAlpha($row['rn']);?></th>
                <th>Name</th> <th>:</th> <th style="font-weight: normal;"><?php echo $row['nama'];?></th>
                <th>Date.of.Birth</th> <th>:</th> <th style="font-weight: normal;"><?php echo dateFormat($row['tarikhlahir']);?></th>
                <th></th><th></th><th></th>
            </tr>
            <tr align='left'>
                <th>Age </th><th> :</th> <th style="font-weight: normal;"><?php echo calculateCurrentAge ($row['tarikhlahir']);?></th>
                <th>Gender</th> <th>:</th> <th style="font-weight: normal;"><?php echo $row['jantina'];?></th>
                <th>Race</th> <th>:</th> <th style="font-weight: normal;"><?php echo $row['bangsa'];?></th>
                <th>Religion</th> <th> :</th> <th style="font-weight: normal;"><?php echo $row['agama'];?></th>
            </tr>
            <?php endforeach ?>
            </table>
        </div>
    </div>
</div>
<?php $this->load->view('template/footer');?>


请帮助我所有人,因为我是Codeigniter的新手,而我所学的只是Google先生,周围没有人可以提供帮助。谢谢。

基本上,如果找不到结果,您的 get_results()函数返回一个空数组,而foreach循环将'失败'。因此,您必须检查count($results) > 0是否意味着您必须检查是否有任何结果:

<?php $this->load->view('template/header');?>
<div class="container">
    <div class="panel panel-info">
        <div class="panel-heading">Patient Demographic</div>
        <div class="panel-body">
            <div class="form-group">
                <?php
                if (count($results) > 0):
                $no = 0;
                foreach ($results as $row):
                $no++;
                ?>
                <table align="center" length="200" border='0' cellpadding='5' cellspacing='6' style="font-family:arial;">
                    <tr align='left'>
                        <th>RN</th>
                        <th> :</th>
                        <th style="font-weight: normal;">
                            <?php echo numberToAlpha($row['rn']);?>
                        </th>
                        <th>Name</th>
                        <th>:</th>
                        <th style="font-weight: normal;">
                            <?php echo $row['nama'];?>
                        </th>
                        <th>Date.of.Birth</th>
                        <th>:</th>
                        <th style="font-weight: normal;">
                            <?php echo dateFormat($row['tarikhlahir']);?>
                        </th>
                        <th></th>
                        <th></th>
                        <th></th>
                    </tr>
                    <tr align='left'>
                        <th>Age </th>
                        <th> :</th>
                        <th style="font-weight: normal;">
                            <?php echo calculateCurrentAge ($row['tarikhlahir']);?>
                        </th>
                        <th>Gender</th>
                        <th>:</th>
                        <th style="font-weight: normal;">
                            <?php echo $row['jantina'];?>
                        </th>
                        <th>Race</th>
                        <th>:</th>
                        <th style="font-weight: normal;">
                            <?php echo $row['bangsa'];?>
                        </th>
                        <th>Religion</th>
                        <th> :</th>
                        <th style="font-weight: normal;">
                            <?php echo $row['agama'];?>
                        </th>
                    </tr>
                </table>
                <?php
                endforeach;
                else:
                ?>
                <p>No results found</p>
                <?php endif; ?>
            </div>
        </div>
    </div>
    <?php $this->load->view('template/footer');?>

注意:我在foreach循环中移动了</table>支架,或者您没有终止表。我不确定为什么您要为每个patient创建一个新表,但是我要判断谁;)。另外,如果您不使用它,则无需启动计数器($no)。

最新更新