2016-03-11 19 views
1

Я новичок здесь, и это мой первый вопрос. Ну, вот он:Проблемы с датой и форматом в PHP

Что мне нужно сделать, это создать PHP, который сравнивает массив дней рождения (даты) из базы данных (запрос mysqli) с фактической датой (особенно месяц и день, игнорируя год для очевидные причины), поэтому он может подтвердить «День рождения этого человека сегодня» через эхо или что-то еще.

У меня возникли проблемы с форматированием даты из массива sql. Вот что я получил до сих пор:

<?php 

$link = mysqli_connect("localhost", "root", "", "employees"); 
$actualdate = date('md'); 


if (mysqli_connect_errno()) { 
    printf("Conection failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT BirthDate FROM Birthdays"; 


if ($result = mysqli_query($link, $query)) { 

    while ($row = mysqli_fetch_row($result)) { 

     if (in_array($actualdate, $row)) { 
     echo "Birthday!"; 
     } else { 
     echo "No birthday";   
     } 

    } 

    mysqli_free_result($result); 
} 

mysqli_close($enlace); 

?> 

Спасибо заранее и извините за беспокойство.

+0

проверить 'var_dump ($ row);' и показать нам –

ответ

2

Предположим, что дата рождения хранится как ДАТА. Я бы, вероятно, выбрать только дни рождения, которые сегодня:

SELECT BirthDate 
FROM Birthdays 
WHERE DAY(BirthDate) = DAY(NOW()) AND MONTH(BirthDate) = MONTH(NOW()); 
+0

наилучшим возможным решением –

0

Если вы все еще хотите, чтобы повторить «Нет дня рождения» Вы должны проверить формат даты в базе данных. Обычно формат даты в MySQL равен ГГГГ-ММ-ДД. Таким образом, вы должны изменить код создания даты

$actualdate = date('Y-m-d'); 

Это будет делать .. В противном случае вы можете выбрать @ ответ Джимы, чтобы получить только сегодняшние дни рождения.

Смежные вопросы