2014-03-28 24 views
0

我有一张表,其中是日期,时间,地点,文本。上一个和下一个月的报告

现在它会报告当前的年份和月份。

我想创建3个按钮,这将从数据库创建报告。

  1. 按钮将较上月报告
  2. 按钮将实际月份报告
  3. 按钮将在下个月

报告,但问题是,当我点击一张或下一个月就只报告本月的前一个月和下一个月。所以我正在寻找某种跟踪日期。

例子:

月(当前) - >(按下个月按钮)=四月 - >(按下个月按钮)=五月...等

月(当前) - >(按上一个月份按钮。)=月 - >(按上一个月份按钮)=一月

+ if is pressed next month when is DECEMBER 2013 reported then it must be new YEAR with january

+ same condition when backwards (January 2014 ->(previous button) = december 2013)

任何想法如何做到这一点?

SELECT hlavni.datum_expirace, hlavni.priloha, hlavni.nazev, vedle.misto 
FROM hlavni 
INNER JOIN vedle ON hlavni.sekce = vedle.idecko WHERE vedle.idecko IN (6, 7, 8, 15, 14, 
16, 17) AND YEAR(datum_expirace) = YEAR(CURDATE()) AND MONTH(datum_expirace) = 
MONTH(CURDATE()) ORDER BY `hlavni`.`datum_expirace` ASC, `hlavni`.`priloha` ASC"); 
+2

不要使用MONTH(CURDATE()),而是将期望的月份作为参数传递给查询。 – StanislavL

+0

我很抱歉,我不明白。我对这件事还是陌生的^^。你能给我一个解释你的意思吗? – user3197269

+0

您是否使用AJAX调用? –

回答

0

看一看下面登录:您可以与您的修改尝试: 你可以使用它作为referrence你:

take one hidden field store in it current date: 
<input type="hidden" name="date" value="<?php echo date('Y-m-01'); ?>" /> 

If you click On any of your three option pass type of it at submit time. 
Now when you submit for Next,Previous,Current Month you need to check: 

if ($_POST['type'] == 'previous') 
{ 
    $date = date('Y-m-d', strtotime("-1 month", strtotime($_POST['date']))); 
} else if ($_POST['type'] == 'next') { 
    $date = date('Y-m-d', strtotime("+1 month", strtotime($_POST['date']))); 
} else { 
    $date = $_POST['date']; 
} 

$start_date = date('Y-m-d', strtotime("-1 year", strtotime('+1 month', strtotime($date)))); 
$end_date = date('Y-m-01', strtotime($date)); 
$end_date = date('Y-m-d', strtotime('-1 second', strtotime('+1 month', strtotime($matrix_e_date_no)))); 


$loop_start_date = strtotime($start_date); 
$loop_end_date = strtotime($end_date); 


while ($loop_start_date < $loop_end_date) { 

//Print your html content here  
$loop_start_date = strtotime(date('Y-m-d', strtotime('+1 month', $loop_start_date))); 
} 

$set_date_again_in_hidden_field = date('Y-m-01', strtotime($date)); 
+0

仍然无法进入功能状态:/ – user3197269

+0

您只需要专注于此代码,尝试理解并做出必要的更改。 –

+0

我乞求你的提示^^我仍然是一个新的mysql – user3197269

0

您可以使用以下 assumeing日期格式为YYYY- MM-DD

为前一个月 SELECT * FROM表WHERE月份(DATE_CREATED)= MONTH(DATE_CREATED - 时间间隔1个月)

for next month SELECT * FROM表WHERE MONTH(date_created)= MONTH(date_created + INTERVAL 1 MONTH)

相关问题