我正在嘗試修改一些很久以前在 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 中運行良好,如果我也能讓分組正常工作,我相信它也會出現在頁面上。感謝您的幫助!
- 2 回答
- 0 關注
- 162 瀏覽
添加回答
舉報
0/150
提交
取消
