2014-04-10 2 views
0

나는 일별, 주별, 월별, 연도별로 상점 수익을 분석 할 수있는 몇 가지 웹 페이지를 만들었습니다.PHP 변수의 쿼리 부분

일를 들어이 될 것입니다 : 지금, 나는 내가 시간을 비교 어디 부분을 제외하고,이 페이지에 대해 같은 쿼리를 사용하려면

WEEK(FROM_UNIXTIME(order.timestamp), 3) = WEEK(CURDATE(), 3) 
:
DATE(FROM_UNIXTIME(order.timestamp)) = DATE(CURDATE()) 

그리고 일주일

이제이 문자열을 변수에 넣고 싶습니다. 그러면 queries.php를 포함시키고 쿼리를 다음과 같이 만들 수 있습니다.

$time = "DATE(FROM_UNIXTIME(order.timestamp)) = DATE(CURDATE())"; 

$rev_today_in = mysql_result(mysql_query("SELECT SUM(order.totale_prijs) FROM `order` WHERE order.medewerkerID != 2 AND '".$time."' AND order.totale_prijs >= 0"),0); 

이것은 작동하지 않으며 가능한 해결책이 없는지 여부를 확인할 수 없습니다.

미리 감사드립니다.

+0

데이터베이스에 1 년 이상의 데이터가있을 때 문제가 있음을 알게되었습니다. –

+0

귀하의 의견을 보내 주셔서 감사합니다! 서버가 모든 타임 스탬프의 날짜를 확인해야하기 때문에? 먼저 order.timestamp> UNIX_TIMESTAMP (CURDATE()) AND order.timestamp bashoogzaad

+0

서버가 모든 타임 스탬프의 날짜를 확인해야하기 때문에가 아닙니다. 하지만 2014-01-01 및 2013-01-01은 둘 다 일주일에 1을 반환하기 때문에 1 년이 걸리더라도 ... _________과 _ 연도를 모두 확인해야합니다. –

답변

0

시간 문자열을 인용 했으므로 작동하지 않을 수도 있습니다. ' 전에 시간이 지나면 필요합니다. 그렇지 않으면 mysql에서도 문자열이됩니다.

-edit-

I 추측 당신이 따옴표를 제거 할 때 당신은 MySQL의 구문 오류를 얻을 것입니다. 필드의 순서가 지정되어 있고 필드로 인용되지 않았기 때문일 수 있습니다. 이름이 까다로운 경우 필드 주위에 역 따옴표를 사용하십시오. 또는 까다로운 이름은 피하십시오.

+0

방금 ​​해봤는데 효과가있었습니다. 나는 '문자열을 다룰 때만 거기에있을 필요가 있다는 것을 몰랐다. 고맙습니다. – bashoogzaad

0

시도해보십시오.

$time = "DATE(FROM_UNIXTIME(order.timestamp)) = DATE(CURDATE())"; 
$query = "SELECT SUM(order.totale_prijs) FROM `order` WHERE order.medewerkerID != 2 AND '".$time."' AND order.totale_prijs >= 0"; 

$rev_today_in = mysql_result(mysql_query($query),0); 
+0

입력 해 주셔서 감사합니다. 나는 다른 PHP PHP 파일에서 많은 변수를 만들어야하기 때문에 monocell의 솔루션을 선호합니다. – bashoogzaad