需要在Codecharge生成的PHP/SQL中添加Group By语句

我正在尝试修改一些很久以前在 Codecharge 中创建的 PHP 代码,以在 MYSQL 语句中包含一个 Group By 子句。


我已经测试了我的 MYSQL 查询,它在 phpmyadmin 中运行良好。当我将它带入 php 页面时,它会返回一个错误,因为 WHERE 和 ORDER 子句被编码在不同的位置,然后被调用到查询字符串中。显然,当 GROUP BY 留在 SQL 中时它会中断,因为它是在 $this 链中的 WHERE 之前插入它,所以我需要弄清楚我可以在哪里插入代码的 GROUP BY 部分,以便将它们串在一起以正确的顺序加载页面。下面是将 SQL 和子句组合在一起的 3 个部分,网页加载正常。我按 SQL 版本注释掉了,因为它在没有 GROUP BY 的情况下无法正常工作。


//SetOrder Method @5-0FECF370

    function SetOrder($SorterName, $SorterDirection)

    {

        $this->Order = "book_name";

        $this->Order = CCGetOrder($this->Order, $SorterName, $SorterDirection, 

            "");

    }

//End SetOrder Method


//Prepare Method @5-C6449552

    function Prepare()

    {

        $this->wp = new clsSQLParameters($this->ErrorBlock);

        $this->wp->AddParameter("1", "urlshow_id", ccsInteger, "", "", $this->Parameters["urlshow_id"], "", false);

       $this->wp->Criterion[1] = $this->wp->Operation(opEqual, "ttb_books.show_id", $this->wp->GetDBValue("1"), $this->ToSQL($this->wp->GetDBValue("1"), ccsInteger),false);

        $this->Where = $this->wp->Criterion[1];


    }

//End Prepare Method


//Open Method @5-33D1EC54

    function Open()

    {

        $this->CCSEventResult = CCGetEvent($this->CCSEvents, "BeforeBuildSelect");

         $this->CountSQL = "SELECT COUNT(*)  " .

        "FROM (ttb_books INNER JOIN ttb_states ON " .

        "ttb_books.state_id = ttb_states.state_id) INNER JOIN ttb_statuses ON " .

        "ttb_books.status_id = ttb_statuses.status_id";

        $this->SQL = "SELECT *  " .

        "FROM (ttb_books INNER JOIN ttb_states ON " .

        "ttb_books.state_id = ttb_states.state_id) INNER JOIN ttb_statuses ON " .


    }

//End Open Method

代码的原始版本只列出了所有书名,并按书名排序。我的版本还包括一个 COUNT,因为我不仅要查看所有书名,还要查看列表中每本书的页数。就像我说的,我的新 SQL 在 phpmyadmin 中运行良好,如果我也能让分组正常工作,我相信它也会出现在页面上。感谢您的帮助!


陪伴而非守候
浏览 138回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP