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

时间:2017-11-23 03:05:52

标签: php codeigniter

我试图做一个错误弹出消息但是在我从谷歌做了很多研究之后,所有的教程对我都没有用。在这个项目中,我使用' rn'并发布RN,NAME,D.O.B,AGE,GENDER,RACE,RELIGION'。现在我想为'设置验证。例如:if''与数据库中的数据不匹配,将显示错误消息。 (抱歉我的英语不好,因为英语不是我的母语)。
这是控制器:

<?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来说是全新的,我所学到的都是来自mr.google,我周围的人都无法提供帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

基本上如果没有找到结果,你的get_results()函数会返回一个空数组,而foreach循环将失败&#39;。因此,您必须检查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)。

相关问题