/** * get sql select articles from multi tables * * @param mixed $arrSummary This is a description * @param mixed $intPage This is a description * @param mixed $topRow top of article, 0: get all * @param mixed $selectField This is a description * @param mixed $whereClause This is a description * @param mixed $orderBy This is a description * @return mixed This is the return value description * */ private function getSQLSelectByTableName($arrSummary, $intPage, $topRow, $selectField, $whereClause, $orderBy) { if ($orderBy) { $orderBy = ' ORDER BY ' . $orderBy; } $listArticleID = ''; foreach ($arrSummary as $item) { $listArticleID = $item[global_mapping::SubContents] . $listArticleID; } $arrDocInTable = global_common::getListTableName($listArticleID, $intPage, Model_Article::NUM_PER_PAGE, global_common::SEPARATE_BY_MONTH); $strSQL = ''; $condition = ''; foreach ($arrDocInTable as $key => $iDoc) { //print_r($iDoc); //check endWith ',' and then remove it if (global_common::endsWith($iDoc, ',')) { $strDocInTable = global_common::cutLast($iDoc, 1); } $strTableName = Model_Article::TBL_SL_ARTICLE . '_' . $key; if ($whereClause) { $condition = 'WHERE (' . global_mapping::IsDeleted . ' IS NULL or ' . global_mapping::IsDeleted . ' = \'0\') and `' . global_mapping::ArticleID . '` IN (' . $strDocInTable . ') and ' . $whereClause; } else { $condition = 'WHERE (' . global_mapping::IsDeleted . ' IS NULL or ' . global_mapping::IsDeleted . ' = \'0\') and `' . global_mapping::ArticleID . '` IN (' . $strDocInTable . ')'; } if ($topRow > 0) { $strSQL .= "(" . global_common::prepareQuery(global_common::SQL_SELECT_FREE_LIMIT, array($selectField, $strTableName, $condition . $orderBy, 0, $topRow)) . " ) UNION ALL "; } else { $strSQL .= "(" . global_common::prepareQuery(global_common::SQL_SELECT_FREE, array($selectField, $strTableName, $condition . $orderBy)) . " ) UNION ALL "; } } //xóa bỏ đoạn text UNION ALL cuối chuỗi $strSQL $strSQL = global_common::cutLast($strSQL, strlen('UNION ALL ')); //echo $strSQL; return $strSQL; }
public function getCommentByArticle(&$intPage, &$total, $articleID, $selectField = '*', $whereClause = '', $orderBy = '') { $arrSummary = global_common::getContentIDs($this->_objConnection, $intPage, $articleID, global_common::COMMENT_TYPE); if ($arrSummary) { if ($orderBy) { $orderBy = ' ORDER BY ' . $orderBy; } $listCommentID = ''; foreach ($arrSummary as $item) { $listCommentID = $item[global_mapping::SubContents] . $listCommentID; } $IDList = global_common::splitString($listCommentID); $total = count($IDList); $arrDocInTable = global_common::getListTableName($listCommentID, $intPage, Model_Comment::NUM_PER_PAGE, global_common::SEPARATE_BY_MONTH); $strSQL = ''; $condition = ''; foreach ($arrDocInTable as $key => $iDoc) { //check endWith ',' and then remove it if (global_common::endsWith($iDoc, ',')) { $strDocInTable = global_common::cutLast($iDoc, 1); } $strTableName = Model_Comment::TBL_SL_COMMENT . '_' . $key; if ($whereClause) { $condition = 'WHERE (' . global_mapping::IsDeleted . ' IS NULL or ' . global_mapping::IsDeleted . ' = \'0\') and `' . global_mapping::CommentID . '` IN (' . $strDocInTable . ') and ' . $whereClause; } else { $condition = 'WHERE (' . global_mapping::IsDeleted . ' IS NULL or ' . global_mapping::IsDeleted . ' = \'0\') and `' . global_mapping::CommentID . '` IN (' . $strDocInTable . ')'; } $strSQL .= "(" . global_common::prepareQuery(global_common::SQL_SELECT_FREE, array($selectField, $strTableName, $condition . $orderBy)) . " ) UNION ALL "; } //xóa bỏ đoạn text UNION ALL cuối chuỗi $strSQL $strSQL = global_common::cutLast($strSQL, strlen('UNION ALL ')); $arrResult = $this->_objConnection->selectCommand($strSQL); $arrResult = global_common::mergeUserInfo($arrResult); //print_r($arrResult); return $arrResult; } return null; }