【问题标题】:Fetch data from table depending on date of birth根据出生日期从表中获取数据
【发布时间】:2018-03-27 14:47:37
【问题描述】:

您好,我正在开发一个网站,我的数据库表中有学生,名为“jongeren”,意思是学生。 我想做的是为 18 岁或以上的学生列出一份清单。在 jongeren 表中,我有一列是:“geboortedatum”,这意味着出生日期。所以我只想呼应所有在 2000 年 3 月 27 日之前出生的学生,但我不知道该怎么做..

现在我只是像这样回应所有学生:

型号:

 public function fetch_data()
    {
        $query = $this->db->get('jongeren');
        //Haal alle gegevens uit jongeren tabel en sla op in $query variabele
        return $query;
    }

控制器:

public function index()
        {
            $this->load->model('Main_model');
            $data['fetch_data'] = $this->Main_model->fetch_data();
            $this->load->view('ingeschreven_jongeren', $data);
        }

查看:

<div class="table-responsive">
            <table class="table table-bordered">
                <tr>
                    <th>ID</th>
                    <th>Voornaam</th>
                    <th>Achternaam</th>
                    <th>Email adres</th>
                    <th>Woonplaats</th>
                    <th>Postcode</th>
                    <th>Straat</th>
                    <th>Huisnummer</th>
                    <th>Geboortedatum</th>
                    <th>Inschrijfdatum</th>
                </tr>
                <?php
                if($fetch_data->num_rows() > 0)
                {
                    foreach($fetch_data->result() as $row)
                    {
                ?>
                 <tr>
                    <td><?php echo $row->jongere_id; ?></td>
                    <td><?php echo $row->voornaam; ?></td>
                    <td><?php echo $row->achternaam; ?></td>
                    <td><?php echo $row->email; ?></td>
                    <td><?php echo $row->woonplaats; ?></td>
                    <td><?php echo $row->postcode; ?></td>
                    <td><?php echo $row->straat; ?></td>
                    <td><?php echo $row->huisnummer; ?></td>
                    <td><?php echo $row->geboortedatum; ?></td>
                    <td><?php echo $row->inschrijfdatum; ?></td>
                 </tr>
                <?php
                    }
                }
                else
                {
                ?>
                    <tr>
                        <!--Als er geen data in jongeren tabel zit echo dan dit bericht--> 
                        <td colspan="3"> Geen data gevonden </td>
                    </tr>
                <?php
                }
                ?>
            </table>

是的,这是我的代码,它显示了所有学生。我可能应该更改我的模型函数中的某些内容,使其仅获取 2000 年 3 月 27 日之前出生的学生的数据?

【问题讨论】:

标签: php database codeigniter fetch codeigniter-3


【解决方案1】:

如果您的数据库是使用 INTERVAL 的 MySQL 或 MariaDB,这很容易做到:

$query = $this->db->query('
    SELECT * 
    FROM jongeren 
    WHERE geboortedatum - CURDATE() - INTERVAL 18 YEAR
');

这假定您的列是 DATETIME 或 TIMESTAMP 数据类型。所以这里做了很多假设。

【讨论】:

  • geboortedatum &lt; CURDATE() - INTERVAL 18 YEAR'你想找到比这个日期更老的用户;)
  • 感谢大家帮助我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-22
  • 2019-11-07
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
相关资源
最近更新 更多