public static function getItems($itemIDs) { if (count($itemIDs) <= 0) { return array(); } $condclauses = array(); $values = array(); foreach ($itemIDs as $key => $value) { array_push($condclauses, "id=?"); array_push($values, $value); } $query = "SELECT * from items where "; $query .= getArrayInString($condclauses, ' OR '); $objItems = ConnectionFactory::SelectRowsAsClasses($query, $values, __CLASS__); return $objItems; }
public static function getItems($itemIDs, $statType = 'defence') { $attack_type = 'def_boost'; if ($statType == 'attack') { $attack_type = 'atk_boost'; } if (count($itemIDs) <= 0) { return array(); } $condclauses = array(); $values = array(); foreach ($itemIDs as $key => $value) { array_push($condclauses, "id=?"); array_push($values, $value); } $query = "SELECT * from items where "; $query .= getArrayInString($condclauses, ' OR '); $query .= " ORDER BY {$attack_type} DESC"; $objItems = ConnectionFactory::SelectRowsAsClasses($query, $values, __CLASS__); return $objItems; }
private function allMissionsInCityReadyForNextLevel($nextLevel, $cityID, $userID) { $cityMissions = Mission::getMissionsInCity($cityID); $numCityMissions = count($cityMissions); $query = "SELECT * from users_missions WHERE user_id=? AND curr_rank=? AND ("; $missionConditions = array(); $values = array(); array_push($values, $userID); array_push($values, $nextLevel); foreach ($cityMissions as $mission) { array_push($missionConditions, "mission_id=?"); $missionID = $mission->getID(); array_push($values, $missionID); } $query .= getArrayInString($missionConditions, ' OR ') . ")"; $usersMissionsReadyInCity = ConnectionFactory::SelectRowsAsClasses($query, $values, __CLASS__); return count($usersMissionsReadyInCity) >= $numCityMissions; }
public static function DeleteRowFromTable($tablename, $conditions) { $mydb = self::getFactory()->getConnection(); //TODO: after refactor, just eliminate getFactory, change getConnection to static, and call that? $stmtString = "DELETE FROM " . $tablename . " WHERE "; $condclauses = array(); foreach ($conditions as $key => $value) { $condclauses[] = $key . "=?"; $values[] = $value; } $stmtString .= getArrayInString($condclauses, 'and'); $stmt = $mydb->prepare($stmtString); $start = microtime(true); $result = $stmt->execute($values); $time = microtime(true) - $start; self::$log[] = array('query' => $stmt->queryString, 'time' => round($time * 1000, 3)); return $result; }