2013-06-18 3 views
0

데이터베이스에 "유지 관리"라는 테이블이 있는데 여기에는 다음과 같은 열이 있습니다.특정 날짜를 기준으로 PHP를 사용하여 MySQL 데이터 표시

순서 (INT11) FROM_DATE (DATETIME) TO_DATE (DATETIME) serviceimpact (LONGTEXT) servicesaffected (LONGTEXT) 이유 (LONGTEXT)

는 기본적으로,이 서버에 대한 서비스 유지 보수가 예정되어 데이터를 추가 자리를 차지하므로 정보가 from_date 전에 며칠 동안 표시되고 그 다음에 며칠 후에도 표시가 사라지고 그 다음에 메시지가 표시됩니다.

"유지 관리가 수행되지 않습니다.

$sql="SELECT * FROM maintenance where from_date >= date(NOW()) and to_date <= date(NOW()) ORDER BY from_date ASC"; 
$rs=mysql_query($sql,$conn) or die(mysql_error()); 
if(mysql_num_rows($rs) > 0) 
{ 
    while($result=mysql_fetch_array($rs)) 
    { 
     echo '<strong>Maintenance Period:</strong> '.$result["from_date"].' to '.$result["to_date"].'<br><br>'; 
     echo '<strong>Services Affected</strong><br>'; 
     echo nl2br(stripslashes($result["servicesaffected"])).'<br><br>'; 
     echo '<strong>Service Impact:</strong><br>'; 
     echo nl2br(stripslashes($result["serviceimpact"])).'<br><br>'; 
     echo '<strong>Reason for Maintenance:</strong><br>'; 
     echo nl2br(stripslashes($result["reason"])).'<br><br><hr /><br><br'; 
    } 
} 
else 
{ 
    //otherwise, display a message to say everything is running fine 
    echo 'There is currently no planned outages for maintenance or upgrade on any of our platforms.'; 
} 

을 이에 내가 그것을 할 방법은 작동하지 않습니다 - 내가 무엇을 할 수 있는지 아이디어 : 시간이 곧 "

순간 나는이?

답변

0
SELECT * FROM maintenance 
WHERE to_date <= DATE_ADD(NOW(), INTERVAL 2 DAY) 
    AND from_date >= DATE_SUB(NOW(), INTERVAL 2 DAY) 
ORDER BY from_date ASC 

는 참고 DATE_SUB에/기능을 추가 할 수 있습니다.

+0

구문 오류가 발생한다. 여기 : SQL 구문에 오류가 있습니다. 가장 가까운 구문을 보려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 'DAY) AND_date> = DATE_SUB (NOW(), 2 행 ORDER BY from_date ASC'2 번 라인) –

+0

그래, 내 쿼리에서 오류가 발생했습니다. 그리고 나는 당신이 그것을 15 초 동안 복사 할 수 있었다고 생각합니다. 나는 그것을 바로 잡아야합니다. 지금 다시 시도하십시오. :) –

+0

aha fair enough - that works 완벽하게 :) 고마워요. –

1

사용 DATE_SUB()와 DATE_ADD()는 DAY,하지 일해야한다는

$sql="SELECT * FROM maintenance where from_date >= DATE_SUB(NOW(),INTERVAL 2 DAY) AND to_date <= DATE_ADD(NOW(),INTERVAL 2 DAY) ORDER BY from_date ASC";

+0

이 테이블의 모든 행을 표시하고 있습니까? :/ –

+0

나의 테이블의 스크린 샷은 여기에있다 : http://tinypic.com/r/2v1uv4o/5 –

+0

나는 대신 OR을 넣고 그날의 간격을 수정했다. – Dave

관련 문제