WHERE子句语法

Hec*_*tor 1 php mysql where-clause

我的sysntax怎么了,我无法做到.有没有更好的办法?

<?
            $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 />";
            }
            ?>
Run Code Online (Sandbox Code Playgroud)

错误是:

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
Run Code Online (Sandbox Code Playgroud)

Red*_*ter 9

您需要使用AND,而不是逗号,如下所示:

select taskname, uid, month, year, SUM(tasktime)
from tictoc
where uid = $uid
    and month = $month
    and year = $year
group by taskname
Run Code Online (Sandbox Code Playgroud)

另外,请注意以下内容:

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

不管用.您需要在查询中为总和添加别名并引用该别名,如下所示:

SELECT taskname,uid,month,year, SUM(tasktime) as SumTaskTime
Run Code Online (Sandbox Code Playgroud)

然后做:

echo "Total ". $row['taskname']. " = <strong>". $row['SumTaskTime)']."</strong>"; 
Run Code Online (Sandbox Code Playgroud)