我从db表接收了多个数组。现在我试图检查"他们的出生日期==当前日期"如果是,那么他们的联系号码保存在名为生日
的数组中这是我的尝试
$curr_date = date('m/d');
$birthday = array(); // array initialization
$anniversary = array(); // array initialization
$con=mysqli_connect("localhost","root","","birthdays");
$sql="SELECT * FROM users";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_assoc($result);
echo "<pre>";
if ($result=mysqli_query($con,$sql))
{
while ($row=mysqli_fetch_assoc($result))
{
print_r ($row);
}
}
以下是具有预期描述的当前代码的图像
我尝试了很多时间但无法达到确切的结果。请指导我。感谢
答案 0 :(得分:0)
我认为你需要这样的东西?
$date1 = date('m-d', strtotime($row['birth_date']));
$date2 = date('m-d');
if ($date1 == $date2) {
echo 'Happy birthday!';
}
有关详细信息,请参阅PHP date function。
答案 1 :(得分:0)
显然你从数据库得到了一个结果,所以你把所有的结果都放在一个数组中:
$sql = "SELECT * FROM xyztable";
$result = $con->query($sql);
$users = array();
while($row = $result->fetch_assoc()) {
$users[] = $row;
}
所以现在我们处于同一点。 现在你可以通过数组循环,创建一个Birthdays数组,你应该爆炸出生日期:
$birthdays = array();
for($users as $user) {
$birth = explode("/", $user['birth_date']);
$new_birth = "$birth[0]/$birth[1]";
$actual_date = date("m/d");
if($new_birth == $actual_date) {
$birthdays[] = $user['customer_mobile'];
}
}
应该是它。
答案 2 :(得分:0)
如果这是从数据库中获取数据的唯一目的,则无需在单独的数组中推送这些行。只需将联系人号码推送到阵列即可。没有必要循环两次。
$curr_date = date('m/d');
$birthday = array(); // array initialization
$anniversary = array(); // array initialization
$con=mysqli_connect("localhost","root","","birthdays");
$sql="SELECT * FROM users";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_assoc($result);
if ($result=mysqli_query($con,$sql)) {
while ($row=mysqli_fetch_assoc($result)) {
if (date('m/d',strtotime($row['birth_date'])) == $curr_date)
$birthday[] = $row['customer_mobile'];
}
}