当前位置: 首页>>代码示例>>PHP>>正文


PHP DatabaseConnection::stripGroupBy方法代码示例

本文整理汇总了PHP中TYPO3\CMS\Core\Database\DatabaseConnection::stripGroupBy方法的典型用法代码示例。如果您正苦于以下问题:PHP DatabaseConnection::stripGroupBy方法的具体用法?PHP DatabaseConnection::stripGroupBy怎么用?PHP DatabaseConnection::stripGroupBy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TYPO3\CMS\Core\Database\DatabaseConnection的用法示例。


在下文中一共展示了DatabaseConnection::stripGroupBy方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: pi_exec_query

 /**
  * Executes a standard SELECT query for listing of records based on standard input vars from the 'browser' ($this->internal['results_at_a_time'] and $this->piVars['pointer']) and 'searchbox' ($this->piVars['sword'] and $this->internal['searchFieldList'])
  * Set $count to 1 if you wish to get a count(*) query for selecting the number of results.
  * Notice that the query will use $this->conf['pidList'] and $this->conf['recursive'] to generate a PID list within which to search for records.
  *
  * @param string $table The table name to make the query for.
  * @param bool $count If set, you will get a "count(*)" query back instead of field selecting
  * @param string $addWhere Additional WHERE clauses (should be starting with " AND ....")
  * @param mixed $mm_cat If an array, then it must contain the keys "table", "mmtable" and (optionally) "catUidList" defining a table to make a MM-relation to in the query (based on fields uid_local and uid_foreign). If not array, the query will be a plain query looking up data in only one table.
  * @param string $groupBy If set, this is added as a " GROUP BY ...." part of the query.
  * @param string $orderBy If set, this is added as a " ORDER BY ...." part of the query. The default is that an ORDER BY clause is made based on $this->internal['orderBy'] and $this->internal['descFlag'] where the orderBy field must be found in $this->internal['orderByList']
  * @param string $query If set, this is taken as the first part of the query instead of what is created internally. Basically this should be a query starting with "FROM [table] WHERE ... AND ...". The $addWhere clauses and all the other stuff is still added. Only the tables and PID selecting clauses are bypassed. May be deprecated in the future!
  * @return bool|\mysqli_result|object SQL result pointer
  */
 public function pi_exec_query($table, $count = FALSE, $addWhere = '', $mm_cat = '', $groupBy = '', $orderBy = '', $query = '')
 {
     // Begin Query:
     if (!$query) {
         // Fetches the list of PIDs to select from.
         // TypoScript property .pidList is a comma list of pids. If blank, current page id is used.
         // TypoScript property .recursive is a int+ which determines how many levels down from the pids in the pid-list subpages should be included in the select.
         $pidList = $this->pi_getPidList($this->conf['pidList'], $this->conf['recursive']);
         if (is_array($mm_cat)) {
             // This adds WHERE-clauses that ensures deleted, hidden, starttime/endtime/access records are NOT
             // selected, if they should not! Almost ALWAYS add this to your queries!
             $query = 'FROM ' . $table . ',' . $mm_cat['table'] . ',' . $mm_cat['mmtable'] . LF . ' WHERE ' . $table . '.uid=' . $mm_cat['mmtable'] . '.uid_local AND ' . $mm_cat['table'] . '.uid=' . $mm_cat['mmtable'] . '.uid_foreign ' . LF . (strcmp($mm_cat['catUidList'], '') ? ' AND ' . $mm_cat['table'] . '.uid IN (' . $mm_cat['catUidList'] . ')' : '') . LF . ' AND ' . $table . '.pid IN (' . $pidList . ')' . LF . $this->cObj->enableFields($table) . LF;
         } else {
             // This adds WHERE-clauses that ensures deleted, hidden, starttime/endtime/access records are NOT
             // selected, if they should not! Almost ALWAYS add this to your queries!
             $query = 'FROM ' . $table . ' WHERE pid IN (' . $pidList . ')' . LF . $this->cObj->enableFields($table) . LF;
         }
     }
     // Split the "FROM ... WHERE" string so we get the WHERE part and TABLE names separated...:
     list($TABLENAMES, $WHERE) = preg_split('/WHERE/i', trim($query), 2);
     $TABLENAMES = trim(substr(trim($TABLENAMES), 5));
     $WHERE = trim($WHERE);
     // Add '$addWhere'
     if ($addWhere) {
         $WHERE .= ' ' . $addWhere . LF;
     }
     // Search word:
     if ($this->piVars['sword'] && $this->internal['searchFieldList']) {
         $WHERE .= $this->cObj->searchWhere($this->piVars['sword'], $this->internal['searchFieldList'], $table) . LF;
     }
     if ($count) {
         $queryParts = array('SELECT' => 'count(*)', 'FROM' => $TABLENAMES, 'WHERE' => $WHERE, 'GROUPBY' => '', 'ORDERBY' => '', 'LIMIT' => '');
     } else {
         // Order by data:
         if (!$orderBy && $this->internal['orderBy']) {
             if (GeneralUtility::inList($this->internal['orderByList'], $this->internal['orderBy'])) {
                 $orderBy = 'ORDER BY ' . $table . '.' . $this->internal['orderBy'] . ($this->internal['descFlag'] ? ' DESC' : '');
             }
         }
         // Limit data:
         $pointer = (int) $this->piVars['pointer'];
         $results_at_a_time = MathUtility::forceIntegerInRange($this->internal['results_at_a_time'], 1, 1000);
         $LIMIT = $pointer * $results_at_a_time . ',' . $results_at_a_time;
         // Add 'SELECT'
         $queryParts = array('SELECT' => $this->pi_prependFieldsWithTable($table, $this->pi_listFields), 'FROM' => $TABLENAMES, 'WHERE' => $WHERE, 'GROUPBY' => $this->databaseConnection->stripGroupBy($groupBy), 'ORDERBY' => $this->databaseConnection->stripOrderBy($orderBy), 'LIMIT' => $LIMIT);
     }
     return $this->databaseConnection->exec_SELECT_queryArray($queryParts);
 }
开发者ID:plan2net,项目名称:TYPO3.CMS,代码行数:62,代码来源:AbstractPlugin.php

示例2: stripGroupByForGroupByKeyword

 /**
  * @test
  * @dataProvider stripGroupByForGroupByKeywordDataProvider
  * @param string $groupByClause The clause to test
  * @param string $expectedResult The expected result
  * @return void
  */
 public function stripGroupByForGroupByKeyword($groupByClause, $expectedResult)
 {
     $strippedQuery = $this->fixture->stripGroupBy($groupByClause);
     $this->assertEquals($expectedResult, $strippedQuery);
 }
开发者ID:nicksergio,项目名称:TYPO3v4-Core,代码行数:12,代码来源:DatabaseConnectionTest.php


注:本文中的TYPO3\CMS\Core\Database\DatabaseConnection::stripGroupBy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。