2015-03-25 2 views
-1

Я хочу использовать сценарий, который я разместил под ним, но он должен показать мне, кто сегодня день рождения. я добавил свой день рождения в моей SQL таблицы ионом этот формат: 1985-06-03Показать сегодняшний день рождения

<html> 
<head> 
<title>Last 10 Results</title> 
</head> 
<body> 
<table> 
<thead> 
    <tr> 
     <td>Id</td> 
     <td>Name</td> 
    </tr> 
</thead> 
<tbody> 
<?php 
    $connect = mysql_connect("localhost","root", "root"); 
    if (!$connect) { 
     die(mysql_error()); 
    } 
    mysql_select_db("apploymentdevs"); 
    $results = mysql_query("SELECT * FROM demo LIMIT 10"); 
    while($row = mysql_fetch_array($results)) { 
    ?> 
     <tr> 
      <td><?php echo $row['Id']?></td> 
      <td><?php echo $row['Name']?></td> 
     </tr> 

    <?php 
    } 
    ?> 
    </tbody> 
    </table> 
</body> 

DB структуру таблицы:

ID   INT11 
FirstName Varchar 
LastName Varchar 
Department Varchar 
Birthday Date  (yyyy-mm-dd) 
+0

Пожалуйста, поделитесь своей структурой таблиц. поэтому мы можем понять вашу проблему и решить ее. –

+0

Привет, я попытался добавить фрагмент кода в оператор select: if (date ('m-d') == substr ($ birthday, 5,5)) $ results = mysql_query ("SELECT * FROM demo LIMIT 10 if (date ('m-d') == substr ($ birthday, 5,5 "))); – Richard

+0

@Richard Вы можете сделать это с помощью MySQL. Вам просто нужно отформатировать даты, чтобы исключить год. См. Мой ответ: http://stackoverflow.com/a/29255217/3000179 –

ответ

0
<?php 
     $connect = mysql_connect("localhost","root", "root"); 
     if (!$connect) { 
      die(mysql_error()); 
     } 
     mysql_select_db("apploymentdevs"); 
     $today_date = date('d'); 
$today_month = date('m'); 

     $results = mysql_query("SELECT * FROM `table_name` where DATE('dob_column') = $today_date && MONTH(`dob_column`) = $today_month"); 
    if(mysql_num_rows($results) > 0){ 
     while($row = mysql_fetch_array($results)) { 
     ?> 
      <tr> 
       <td><?php echo $row['Id']?></td> 
       <td><?php echo $row['Name']?></td> 
      </tr> 

     <?php 
     } 
    }else{ 
    echo "No one birthday on today enter code here"; 
    } 
     ?> 
+1

Зачем включать год? Это не принесет никаких результатов, если только кто-то не родился в тот же день (в том же году). –

+0

удалить комментарий, ответ был отредактирован. –

1

В запросе, форматировать каждую дату быть MM-DD.

SELECT * 
FROM demo 
WHERE DATE_FORMAT(birthday, "%c-%d") = DATE_FORMAT(NOW(), "%c-%d") 
LIMIT 10 

Это вернет результаты, где MM-DD обоих NOW() и значение birthday равны.

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

+0

Это то, что я получил сейчас, но я думаю, что это не совсем правильно: $ connect = mysql_connect ("localhost", "root", "Efv # * I 1" !); if (! $ Connect) { die (mysql_error()); } mysql_select_db ("my_site_db"); $ results = mysql_query ("SELECT * FROM aevinew2_verjaardagen, где date_format (Geboortedatum,"% c-% d ") = DATE_FORMAT) NOW(),"% c-% d ")"); – Richard

+0

«DATE_FORMAT» СЕЙЧАС(), «% c-% d») 'опечатка с копией и вставкой, или это ваш код на самом деле? –

0

Вы можете попробовать что-то вроде этого:

$results = mysql_query("SELECT * FROM demo WHERE MONTH(`table_column`) = '".date('m')."' AND YEAR(`table_column`) = '".date('Y')."'"); 
3

С, вам нужно будет исключить год, вы можете использовать функции MONTH и DAY SQL, как так:

SELECT * FROM table WHERE DAY(birthday) = DAY(CURDATE()) AND MONTH(birthday) = MONTH(CURDATE()); 
+0

вы можете попробовать это также if (date ('m-d', strtotime ($ row ['date'])) == date ('m-d')) // - Сегодня мой день рождения ! Ура! –

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