繁体   English   中英

PHP语法的初学者,mySQL_query错误

[英]Beginner at PHP syntax, mySQL_query error

我正在尝试使用DreamWeaver CS5制作一个仅创建视图的页面。 我如何输入代码以仅接收包含与登录用户有关的所有数据的表。

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)

您必须将查询放在引号中以使其成为字符串。

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")

丹尼尔对引号是正确的。 但是,您可能应该看看PDO ,mysql_函数有些过时了。 您可以在此处阅读更多有关此内容的信息

  • 您有一个多余的结尾括号,应将其删除
  • 视图不应具有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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM