2012-09-13 4 views
1

내 sysntax는 어떻게 되었습니까? 올바르게 설정할 수 없습니다. 더 좋은 방법이 있습니까?WHERE 절 구문

<? 
      $uid = $_GET["uid"]; 
      $month= $_GET["month"]; 
      $year = $_GET["year"]; 
      $query = "SELECT taskname,uid,month,year, SUM(tasktime) FROM tictoc WHERE uid = $uid, month = $month, year = $year GROUP BY taskname"; 

      $result = mysql_query($query) or die(mysql_error()); 

      // Print out result 
      while($row = mysql_fetch_array($result)){ 
       echo "<br />"; 
       echo "Total ". $row['taskname']. " = <strong>". $row['SUM(tasktime)']."</strong>"; 
       echo "<br />"; 
      } 
      ?> 

오류는 다음과 같습니다

echo "Total ". $row['taskname']. " = <strong>". $row['SUM(tasktime)']."</strong>"; 

: 라인을주의 또한

select taskname, uid, month, year, SUM(tasktime) 
from tictoc 
where uid = $uid 
    and month = $month 
    and year = $year 
group by taskname 

:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' month = 'Aug', year = '2012' GROUP BY taskname' at line 1 

답변

9

당신은이 같은 AND 아닌 쉼표를 사용할 필요가 작동 안 할 것이다. 다음

SELECT taskname,uid,month,year, SUM(tasktime) as SumTaskTime 

과 같이하십시오 : 당신은이 같은 별칭이, 검색 결과 및 참조 합 별칭을 필요

echo "Total ". $row['taskname']. " = <strong>". $row['SumTaskTime)']."</strong>"; 
+0

그 오류를 없애고 지금은 알 수없는 행 8 월 'where 절' – Hector

+0

무엇이 누락 되었습니까? – Hector

+0

고마워,하지만 지금도 여전히 오류가 발생합니다 : 'where 절'에서 알 수없는 열 'Aug' – Hector

1

는 매개 변수가 비어 도착하지 있는지 확인 이전 답을 보완하기 위해. 예 :

$uid = $_GET["uid"] = $_GET["uid"] == "" ? 0 : $_GET["uid"]; 
$month = $_GET["month"] = $_GET["month"] == "" ? 0 : $_GET["month"]; 
$year = $_GET["year"] = $_GET["year"] == "" ? 0 : $_GET["year"]; 

또는 확인 전략을 선택하십시오.

공백이 도착하여 유효성을 검사하지 않으면 SQL 문을 잘못 작성하게되어보고하는 오류가 발생하게됩니다.