function getIdsFromTable($startId, $endId) { list($tableName, $primaryKey) = $this->getPrimaryKeyAndTable(); $result = array(); $query = $GLOBALS['db']->query(sprintf("SELECT %s FROM %s WHERE %s >= %s AND %s <= %s", S::sqlMetaData($primaryKey), S::sqlMetaData($tableName), S::sqlMetaData($primaryKey), S::sqlEscape($startId), S::sqlMetaData($primaryKey), S::sqlEscape($endId))); while ($rt = $GLOBALS['db']->fetch_array($query)) { $result[] = $rt[$primaryKey]; } return $result; }
function getThreadDataWithTmsgs($query) { $threads = $tmsgsTables = array(); while ($rt = $GLOBALS['db']->fetch_array($query)) { $threads[$rt['tid']] = $rt; $tmsgsTableName = GetTtable($rt['tid']); $tmsgsTables[$tmsgsTableName][] = $rt['tid']; } if (!S::isArray($threads)) { return array(); } foreach ($tmsgsTables as $tableName => $tids) { $tmsgsQuery = $GLOBALS['db']->query("SELECT * FROM " . S::sqlMetaData($tableName) . " WHERE tid IN(" . S::sqlImplode($tids) . ")"); while ($rt = $GLOBALS['db']->fetch_array($tmsgsQuery)) { $rt['threadurl'] = $GLOBALS['db_bbsurl'] . '/read.php?tid=' . $rt['tid']; $rt['forumurl'] = $GLOBALS['db_bbsurl'] . '/thread.php?fid=' . $threads[$rt['tid']]['fid']; $threads[$rt['tid']] = array_merge($threads[$rt['tid']], $rt); } } return $threads; }
function getMinAndMaxIdByTableName($tableName) { if ($tableName != 'pw_pidtmp' && !preg_match('|^pw_posts\\d*$|i', $tableName)) { return array('min' => 0, 'max' => 0); } return $GLOBALS['db']->get_one("SELECT min(pid) AS min,max(pid) AS max FROM " . S::sqlMetaData($tableName)); }