Question: ```
$query = mysql_query(" SET @c1=0; SELECT @c1 := @c1+1 as Week,
AVG(Temp) AS Average_Temperature FROM (   SELECT t1.*, COUNT(*) cnt
FROM test2 t1   LEFT JOIN test2 t2
ON t2.Date <= t1.Date
AND YEAR(FROM_UNIXTIME(t2.Date)) = YEAR(FROM_UNIXTIME(t1.Date))
AND MONTH(FROM_UNIXTIME(t2.Date)) = MONTH(FROM_UNIXTIME(t1.Date))   GROUP 
BY Date ) t GROUP BY   YEAR(FROM_UNIXTIME(Date)), MONTH(FROM_UNIXTIME(Date)), CEIL(cnt/7);" );

```

If I dont use SET @c1=0; I got no error... So whats the use of this on json php? Above code successfully queried on PHPMyAdmin.

edit: solved

Answer: 
Just enclose them in quotes .. See here `$query = mysql_query(" your query ");`

Like this..

```
$query = mysql_query("
    SELECT AVG(Temp) AS Average_Temperature FROM (
    SELECT t1.*, COUNT(*) cnt FROM test2 t1
  LEFT JOIN test2 t2
    ON t2.Date <= t1.Date
    AND YEAR(FROM_UNIXTIME(t2.Date)) = YEAR(FROM_UNIXTIME(t1.Date))
        AND MONTH(FROM_UNIXTIME(t2.Date)) = MONTH(FROM_UNIXTIME(t1.Date))
  GROUP 
    BY Date
) t
GROUP BY
  YEAR(FROM_UNIXTIME(Date)), MONTH(FROM_UNIXTIME(Date)), CEIL(cnt/7);
");

```

Disclaimer : Stop using mysql\_\* functions as they are deprecated. Switch to MySQLi or PDO instead.
Clearly, the `set` and `select` are incompatible as a single query. There is an easy work-around. Set the variable *in* the query:

```
SELECT @c1 := @c1+1 as Week, AVG(Temp) AS Average_Temperature
FROM (SELECT t1.*, COUNT(*) as cnt
      FROM test2 t1 LEFT JOIN
           test2 t2
           ON t2.Date <= t1.Date AND
              YEAR(FROM_UNIXTIME(t2.Date)) = YEAR(FROM_UNIXTIME(t1.Date)) AND
              MONTH(FROM_UNIXTIME(t2.Date)) = MONTH(FROM_UNIXTIME(t1.Date))
      GROUP BY Date
     ) t cross join
     (select @c1 := 0) const
GROUP BY YEAR(FROM_UNIXTIME(Date)), MONTH(FROM_UNIXTIME(Date)), CEIL(cnt/7);

```