首页 > 解决方案 > PHP - 从数据库中获取出生日期,将其转换为年龄,如果年龄超过 15 岁,则从数据库中回显他们的电子邮件

问题描述

我有一个正在做的学校项目。我必须从数据库表中获取每个用户的出生日期,然后计算每个用户的年龄。然后,如果他们的年龄超过 15 岁,那么我需要回显他们的电子邮件。

当我运行这段代码时,它只会说 Array,而不是用户的电子邮件。我知道这是因为我没有 foreach $email_array,但我不知道如何在与年龄相同的 foreach 中执行此操作。

我一直在研究组合 foreach 数组,但似乎无法让它工作。

在此先感谢您的帮助。

到目前为止,以下是我的代码:

<?php 
   session_start();
   include('phpcodes/connection.php');

   $import="SELECT * FROM table";
   $result = mysqli_query($con,$import);
   while($row = mysqli_fetch_array($result)) {
      $emaillist .= $row['email'] . ",";
      $doblist .= $row['dob'] . ",";
   }

   $dob_array = explode(",",$doblist);
   $email_array = explode(",",$emaillist);
   foreach($dob_array as $ages) {
      $today = date("d-m-Y");
      $diff = date_diff(date_create($ages), date_create($today));
      $age = $diff->format('%y');

      if ($age > '15') {
          echo $email_array;
      }
   }
?>

标签: phpforeach

解决方案


您可以循环keyvalue循环foreach

$arrayAge = [
    13,
    22,
    17
];

$arrayName = [
    'Lisa',
    'Selina',
    'Bianca'
];

foreach ($arrayAge as $key => $age) {
    echo $age . PHP_EOL;
    echo $arrayName[$key];
}

如果您在while循环中进行了比较,则不需要第二个循环:

while($row = mysqli_fetch_array($result)) {
    if (/* the comparation */) {
        echo $row['email'];
    }
}

推荐阅读