2012-11-20 5 views
2

Хорошо, это меня заводит в тупик и не уверен, что это возможно. У меня есть база данных с датой начала и окончания. например, дату начала 2002 года и дату окончания 2012 года, однако то, что я хочу сделать, - это список всех дат между этими двумя пунктами, например, 2003, 2004, 2005 и т. д.Показывать даты между датой начала и окончания в mysql

Однако этих дат нет в базе данных , и поэтому я хочу, чтобы они автоматически создавали их. Возможно ли это ?, другая моя идея - создать вторую базу данных с объединением и список всех дат.

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

Благодаря

+0

Почему бы не использовать логику даты в вашем коде? – Perception

ответ

-1

Такие вещи должны быть сделано с PHP.

Используйте пару из множества фонов, которые PHP может предложить. Вы можете создать временную метку с mktime(), а затем использовать, например, цикл strtotime().

$start = mktime(0, 0, 0, 1, 1, 2002); 
$end = mktime(0, 0, 0, 1, 1, 2012); 

$currentDate = $start; 
while($currentDate < $end) { 
    echo date("Y", $currentDate) . "<br />"; 

    $currentDate = strtotime("+1 year", $currentDate); 
} 

Не проверял его, но должен работать.

strtotime()

mktime()

List of all date functions in PHP

-2

вы должны использовать между функцией

SELECT * FROM Persons 
WHERE LastName 
BETWEEN (2003 AND 2004); 
+0

Внимательно прочитайте вопрос: «Однако эти даты не находятся в базе данных, и поэтому я хочу, чтобы они автоматически создавали их» – Martin

+0

Ответ не связан с вопросом –

+0

ok попробуйте сам – Daxen

0

Ваш SQL будет выглядеть

$query = "SELECT starttime st ,endtime et FROM your_table WHERE id = your_user_id_variable "; 
    $row = mysql_fetch_array($result) or die(mysql_error()); 

, а затем использовать этот PHP код

for($i=1 , $i<$row['et'],$i++){ 
     echo $row['st']+$i.", " ; 
      } 

тогда это будет эхом 2003,2004, ....., 2011

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