/**
  * @param string $login
  * @param int $offset
  * @param int $length
  * @return Rent[]
  * @throws \InvalidArgumentException
  */
 function getCurrents($login, $offset = null, $length = null)
 {
     if (!preg_match('/^[a-zA-Z0-9-_\\.]{1,25}$/', $login)) {
         throw new \InvalidArgumentException();
     }
     $quotedLogin = $this->db()->quote($login);
     $result = $this->db()->execute('SELECT R.*, S.login FROM Rents R ' . 'LEFT JOIN Servers S ON R.id = S.idRent ' . 'WHERE playerLogin = %s ' . 'AND rentDate < NOW() ' . 'AND DATE_ADD(rentDate, INTERVAL duration HOUR) > NOW() ' . 'ORDER BY DATE_ADD(rentDate, INTERVAL duration HOUR) DESC %s', $quotedLogin, \ManiaLib\Database\Tools::getLimitString($offset, $length));
     return Rent::arrayFromRecordSet($result);
 }
 /**
  * @return Server[]
  */
 function getList($offset = null, $length = null)
 {
     $result = $this->db()->execute('SELECT S.* FROM Servers S %s', \ManiaLib\Database\Tools::getLimitString($offset, $length));
     return Server::arrayFromRecordSet($result);
 }
示例#3
0
 protected function getKeys($path, array $excludePath = array(), $environment = null, $nbLaps = null, $type = null, $mapType = null, $recursive = false, $offset = null, $length = null)
 {
     $path .= $recursive ? '%' : '';
     $path = str_replace('\\', '/', $path);
     $excludePath = array_map(array($this->db(), 'quote'), $excludePath);
     return $this->db()->execute('SELECT CONCAT(path,filename) FROM Maps ' . 'WHERE path LIKE %s ' . ($excludePath ? 'AND path NOT IN (%3$s) ' : '') . ($environment ? 'AND environment = %4$s ' : '') . ($nbLaps ? 'AND nbLaps != 0 ' : '') . ($type ? 'AND type = %5$s ' : '') . ($mapType ? 'AND mapType = %6$s ' : '') . 'ORDER BY name ASC %s', $this->db()->quote($path), \ManiaLib\Database\Tools::getLimitString($offset, $length), implode($excludePath), $this->db()->quote($environment), $this->db()->quote($type), $this->db()->quote($mapType))->fetchArrayOfSingleValues();
 }
 function getServerList($offset = 0, $length = 7)
 {
     return $this->db()->execute('SELECT serverLogin FROM Analytics GROUP BY serverLogin %s', \ManiaLib\Database\Tools::getLimitString($offset, $length))->fetchArrayOfSingleValues();
 }