2010-05-29 10 views
0

이것은 나를 미치게합니다! 당신이 내 PHP/MySQL의 코드를 찾을 수 있지만 여기에 직접 MySQL의 문을 게시 아래 :SELECT SUM PHP MySQL 문제

SELECT SUM(ot.value) AS msa 
    FROM orders o 
LEFT JOIN orders_total ot ON ot.orders_id = o.orders_id 
    WHERE ot.class = 'ot_total' 
     AND UNIX_TIMESTAMP(o.date_purchased) >=1262332800 
     AND UNIX_TIMESTAMP(o.date_purchased) <=1264924800 
     AND o.sales_rep_id = '2' 

을 내가 phpMyAdmin을 내부에이 문을 실행할 때 나는 "MSA"에 연관되는 ot.value의 합계를 얻을. PHP 코드를 실행해도 값을 반환하지는 않습니다. 누구든지 문제를 봤어?

// works in phpMyAdmin but not displaying during PHP execution! 
$monthly_sales_amount_sql = "SELECT SUM(ot.value) AS msa 
           FROM orders o 
          LEFT JOIN orders_total ot ON ot.orders_id = o.orders_id 
           WHERE ot.class = 'ot_total' 
           AND UNIX_TIMESTAMP(o.date_purchased) >= $start_timestamp 
           AND UNIX_TIMESTAMP(o.date_purchased) <= $end_timestamp 
           AND o.sales_rep_id = '" . $sales_rep_id . "'";          

$result = mysql_query($monthly_sales_amount_sql); 
$row = mysql_fetch_assoc($result); 

echo "MSA: " . $row['msa'] . "<BR><BR>"; 
+0

PHP, 구문, 연결에서 MySQL의 오류에 대한

확인, 당신은'$의 start_timestamp'과'$의 sales_rep_id' 디버깅 적이 있습니까? 'echo $ Query에 의해 완료된 전체 쿼리를 출력으로 표시 할 수 있습니까? : $ monthly_sales_amount_sql. "
";'? –

+0

실제로 어떤 행이 반환됩니까? $ row의 var_dump를 해보고, PHP의 mysql이 컬럼 이름을 대문자로 처리하는 경우주의하십시오. MSA –

+0

결코 PHP 쿼리 호출이 성공했다고 가정하지 마십시오. 쿼리가 테스트 버전과 실제로 동일하더라도 쿼리가 실패 할 수있는 다른 이유가 너무 많습니다. 그 후에는 항상 mysql_error()를 체크한다. –

답변

0

이 같은 상황의 경우, mysql_query 명령이 실행되기 직전에 SQL 문을 출력 :

print($monthly_sales_amount_sql) 
$result = mysql_query($monthly_sales_amount_sql); 

알림 : Your query is susceptible to SQL Injection attacks합니다. 당신이 연결 연산자를 놓치고로

+0

편집하기 전에 마침표가있는 것 같습니다. 질문의 개정판 2를 확인하십시오. http://stackoverflow.com/revisions/3701212f-77af-4d5e-a2de-50f186e61429/view-source –

0

AND o.sales_rep_id = '" . $sales_rep_id "'";

바로 $sales_rep_id 후 구문 오류가 있습니다.

0

표준 디버깅을 수행해야합니다.

실제로 실행하려고하는 SQL 문자열을 표시하여 실제로 생각하는 것입니다. 이러한 일을 할 때 가장 흔히 발생하는 오류입니다. 등