2011-12-05 89 views
0

我試圖做一個網頁,只是使用Dreamweaver CS5一個CREATE VIEW。我該如何輸入我的代碼才能接收包含與登錄用戶相關的所有數據的表格。初學者在PHP語法,MYSQL_QUERY錯誤

mysql_query(
CREATE VIEW UserResults 
AS 
    SELECT E.No, E. Description 
     , Count(R.RID WHERE $Username= R.Owner) 
     , Count(R.RID WHERE $Username= R.Owner AND Status==’Active’) 
    FROM ETable AS E, RTABLE as R 
    ORDER BY E.No) 
+1

您的SQL是容易僅供參考SQL注入攻擊。 –

+0

您也不應該通過代碼創建視圖 - 就像表一樣,它們在創建之後會一直存在,所以您只需在安裝應用程序時創建它們即可。 – duskwuff

+0

雙引號缺少 –

回答

3

你必須把你的查詢放在引號中,使它成爲一個字符串。

mysql_query("CREATE VIEW UserResults AS SELECT E.No, E. Description, Count(R.RID WHERE $Username= R.Owner), Count(R.RID WHERE $Username= R.Owner AND Status==’Active’) FROM ETable AS E, RTABLE as R ORDER BY E.No") 
+0

非常感謝你 – MadMoney

1

Daniel對報價是正確的。但是,你應該看看PDO,該mysql_職能是有點過時。您可以閱讀關於here的更多信息。

1
  • 你有一個額外的結局括號,應刪除
  • 意見不應該有ORDER BY
  • WHERE條款不應該在SELECT的中間,你將需要使用CASE
  • 要返回笛卡爾積而不是加入你的表一起,這可能會提供更多的結果不是你想要/期望。

CASE語句THEN塊的R.RID可能需要一個1,不能完全確定你希望從這些COUNT陳述你原本得到什麼。

我試圖找出你試圖做的,我覺得這是它:

CREATE VIEW UserResults AS 
    SELECT E.No, E.Description 
     , SUM(CASE 
       WHEN $Username = R.Owner THEN R.RID 
       ELSE 0 
      END) AS SumOfOwner 
     , SUM(CASE 
       WHEN $Username = R.Owner AND Status = 'Active' THEN R.RID 
       ELSE 0 
      END) AS SumOfOwnerAndActive 
    FROM ETable AS E 
    INNER JOIN RTABLE as R ON E.No = R.ENo 
    GROUP BY E.No, E.Description