class ConcursoVerano2015Partidas{
var $id;
var $idUser;
var $nSocio;
var $nomComplet;
var $poblacio;
var $nivell;
var $tempsMax;
var $clientBrowser;
var $clientIP;
var $dataInici;
var $dataFinal;
var $nomatches;
var $parelles;
var $punts;
var $tempsTrigat;
var $gcode;
var $lastQuery = '';
const BONUS_PER_SEGON = 10;
function cargar($rs, $indice){
global $_conexion;
if($_conexion->numrows($rs) > $indice){
$this->id = $_conexion->result($rs, $indice, 'id');
$this->idUser = $_conexion->result($rs, $indice, 'idUser');
$this->nSocio = $_conexion->result($rs, $indice, 'nSocio');
$this->nomComplet = $_conexion->result($rs, $indice, 'nomComplet');
$this->poblacio = $_conexion->result($rs, $indice, 'poblacio');
$this->nivell = $_conexion->result($rs, $indice, 'nivell');
$this->tempsMax = $_conexion->result($rs, $indice, 'tempsMax');
$this->clientBrowser = $_conexion->result($rs, $indice, 'clientBrowser');
$this->clientIP = $_conexion->result($rs, $indice, 'clientIP');
$this->dataInici = $_conexion->result($rs, $indice, 'dataInici');
$this->dataFinal = $_conexion->result($rs, $indice, 'dataFinal');
$this->nomatches = $_conexion->result($rs, $indice, 'nomatches');
$this->parelles = $_conexion->result($rs, $indice, 'parelles');
$this->punts = $_conexion->result($rs, $indice, 'punts');
$this->tempsTrigat = $_conexion->result($rs, $indice, 'tempsTrigat');
$this->gcode = $_conexion->result($rs, $indice, 'gcode');
}
}
function getCantTotal(){
global $_conexion;
$sql = "SELECT count(*) as cantidad FROM concursoVerano2015_partidas";
$rs = $_conexion->query($sql);
$cant = $_conexion->numrows($rs);
return ($cant > 0) ? $_conexion->result($rs, 0, "cantidad") : 0;
}
//Generamos la funcion de recoger por id;
function getById($id){
global $_conexion;
$item = new ConcursoVerano2015Partidas();
if($id != ''){
$sql = "SELECT * FROM concursoVerano2015_partidas WHERE id = $id";
$rs = $_conexion->query($sql);
$item->cargar($rs, 0);
}
return $item;
}
//Generamos la funcion de recoger por id;
function getByGcode($gcode){
global $_conexion;
$item = new ConcursoVerano2015Partidas();
if($gcode != ''){
$sql = "SELECT * FROM concursoVerano2015_partidas WHERE gcode = '$gcode'";
$rs = $_conexion->query($sql);
$item->cargar($rs, 0);
$item->lastQuery = $sql;
}
return $item;
}
//Generamos el metodo que ejecuta un sql de listado;
function getListadoSQL($sql){
global $_conexion;
$rs = $_conexion->query($sql);
$cant = $_conexion->numrows($rs);
$listado = Array();
for($cont = 0; $cont < $cant; $cont++){
$item = new ConcursoVerano2015Partidas();
$item->cargar($rs, $cont);
array_push($listado, $item);
}
return $listado;
}
//Generamos el metodo que devuelve todo el listado de elementos;
function getListado(){
$sql = "SELECT * FROM concursoVerano2015_partidas";
return ConcursoVerano2015Partidas::getListadoSQL($sql);
}
//Generamos el metodo que devuelve el listado paginado
function getListadoPag($cantidad, $pagina, &$cantTotal){
global $_conexion;
$inicio = $cantidad * $pagina;
$sql = "SELECT count(*) AS cantidad FROM concursoVerano2015_partidas";
$rs = $_conexion->query($sql);
$cantTotal = $_conexion->result($rs, 0, "cantidad");
$orden = "";
$sql = "SELECT * FROM concursoVerano2015_partidas $orden LIMIT $inicio, $cantidad";
return ConcursoVerano2015Partidas::getListadoSQL($sql);
}
function getRankingHoy(){
$sql = " ";
$sql .= " SELECT tt.* FROM concursoVerano2015_partidas tt ";
$sql .= " INNER JOIN (";
$sql .= " SELECT idUser, MAX(punts) AS maxpuntuacion";
$sql .= " FROM concursoVerano2015_partidas";
$sql .= " WHERE date(dataFinal) = date(now())";
$sql .= " GROUP BY idUser";
$sql .= " ) ";
$sql .= " concursoVerano2015_partidas ON tt.idUser = concursoVerano2015_partidas.idUser AND tt.punts = concursoVerano2015_partidas.maxpuntuacion";
$sql .= " WHERE date(tt.dataFinal) = date(now()) ";
$sql .= " ORDER BY tt.punts DESC";
return ConcursoVerano2015Partidas::getListadoSQL($sql);
}
function getListGanadores(){
global $_conexion;
//Recogemos los dias en los que ha habido sorteo
$sql = "SELECT DISTINCT(date(dataFinal)) AS dataFinal FROM concursoVerano2015_partidas WHERE date(dataFinal) < date(now()) ORDER BY dataFinal DESC";
//echo "sql: ".$sql."
";
$rs = $_conexion->query($sql);
$cant = $_conexion->numrows($rs);
$listado = Array();
for($cont = 0; $cont < $cant; $cont++){
$fecha = $_conexion->result($rs, $cont, "dataFinal");
$sql2 = "SELECT * FROM concursoVerano2015_partidas as tabla2 WHERE date(dataFinal) = '".$fecha."' AND punts > 0 ORDER BY punts DESC, dataFinal ASC LIMIT 1";
$rs2 = $_conexion->query($sql2);
$cant2 = $_conexion->numrows($rs2);
if($cant2 > 0){
$item = new ConcursoVerano2015Partidas();
$item->cargar($rs2, 0);
array_push($listado, $item);
}
}
$premios = Array();
//Cambiamos los ganadores que han salido mas de 3 veces
for($cont = count($listado)-1; $cont >= 0; $cont--){
$ganador = $listado[$cont];
ConcursoVerano2015Partidas::addPremio($premios, $ganador->idUser);
if($premios[$ganador->idUser] > 3){
$listado[$cont] = ConcursoVerano2015Partidas::getOtroGanador($ganador->dataFinal, $ganador->idUser);
ConcursoVerano2015Partidas::addPremio($premios, $listado[$cont]->idUser);
}
}
return $listado;
}
function addPremio(&$listado, $idUser){
if(!isset($listado[$idUser])) $listado[$idUser] = 0;
$listado[$idUser]++;
}
function getOtroGanador($fecha, $idUser){
global $_conexion;
$ganador = new ConcursoVerano2015Partidas(); /* fechaUsa($fecha) */
$sql = "SELECT * FROM concursoVerano2015_partidas WHERE date(dataFinal) = '".substr($fecha,0,10)."' ";
$sql .= " AND idUser != $idUser ORDER BY punts DESC, dataFinal ASC LIMIT 0, 1";
$rs = $_conexion->query($sql);
$cant = $_conexion->numrows($rs);
if($cant > 0){
$ganador->cargar($rs, 0);
}
return $ganador;
}
//Generamos la funcion de guardar
function guardar(){
global $_conexion;
if($this->idUser == '') $this->idUser = 0;
if($this->nivell == '') $this->nivell = 0;
if($this->tempsMax == '') $this->tempsMax = 0;
if($this->nomatches == '') $this->nomatches = 0;
if($this->parelles == '') $this->parelles = 0;
if($this->punts == '') $this->punts = 0;
if($this->tempsTrigat == '') $this->tempsTrigat = 0;
$this->dataFinal = fechaUsa($this->dataFinal);
$this->clientBrowser = $_SERVER["HTTP_USER_AGENT"];
$this->clientIP = $_SERVER["REMOTE_ADDR"];
if($this->id == ''){
$this->dataInici = date('Y-m-d H:i:s');
$this->gcode = md5($this->id.$this->idUser.$this->poblacio.$this->dataInici);
$sql = "INSERT INTO concursoVerano2015_partidas (";
$sql .= " idUser ";
$sql .= ", nSocio ";
$sql .= ", nomComplet ";
$sql .= ", poblacio ";
$sql .= ", nivell ";
$sql .= ", tempsMax ";
$sql .= ", clientBrowser ";
$sql .= ", clientIP ";
$sql .= ", nomatches ";
$sql .= ", parelles ";
$sql .= ", punts ";
$sql .= ", tempsTrigat ";
$sql .= ", dataInici ";
$sql .= ", gcode ";
$sql .= ") VALUES (";
$sql .= " '$this->idUser'";
$sql .= ", '$this->nSocio'";
$sql .= ", '$this->nomComplet'";
$sql .= ", '$this->poblacio'";
$sql .= ", '$this->nivell'";
$sql .= ", '$this->tempsMax'";
$sql .= ", '$this->clientBrowser'";
$sql .= ", '$this->clientIP'";
$sql .= ", '0'";
$sql .= ", '0'";
$sql .= ", '0'";
$sql .= ", '0'";
$sql .= ", '$this->dataInici'";
$sql .= ", '$this->gcode'";
$sql .= ")";
$rs = $_conexion->query($sql);
$this->id = $_conexion->insertId();
}else{
$this->dataFinal = date('Y-m-d H:i:s');
$this->gcode = "FINAL_". md5($this->id.$this->idUser.$this->poblacio.$this->dataInici);
$sql = "UPDATE concursoVerano2015_partidas SET ";
$sql .= "idUser = '$this->idUser' ";
$sql .= ",nSocio = '$this->nSocio' ";
$sql .= ",nomComplet = '$this->nomComplet' ";
$sql .= ",poblacio = '$this->poblacio' ";
$sql .= ",nivell = '$this->nivell' ";
$sql .= ",clientBrowser = '$this->clientBrowser' ";
$sql .= ",clientIP = '$this->clientIP' ";
$sql .= ",dataFinal = '$this->dataFinal' ";
$sql .= ",nomatches = '$this->nomatches' ";
$sql .= ",parelles = '$this->parelles' ";
$sql .= ",gcode = '$this->gcode' ";
if (($this->dataInici != null)&&($this->dataFinal != null)){
$timeFirst = strtotime($this->dataInici);
$timeSecond = strtotime($this->dataFinal);
$this->tempsTrigat = $timeSecond - $timeFirst;
$sql .= ",tempsTrigat = '$this->tempsTrigat' ";
}
$this->punts = $this->punts + ($this->tempsMax - $this->tempsTrigat)*ConcursoVerano2015Partidas::BONUS_PER_SEGON;
$sql .= ",punts = '$this->punts' ";
$sql .= " WHERE id = '$this->id'";
$rs = $_conexion->query($sql);
}
$this->lastQuery = $sql;
}
function delete($id){
global $_conexion;
$sql = "DELETE FROM concursoVerano2015_partidas WHERE id = $id";
$_conexion->query($sql);
}
}
class ConcursoVerano2015Preguntes{
var $id;
var $pregunta;
var $respuesta;
var $opcion_a;
var $opcion_b;
var $opcion_c;
function cargar($rs, $indice){
global $_conexion;
if($_conexion->numrows($rs) > $indice){
$this->id = $_conexion->result($rs, $indice, 'id');
$this->pregunta = $_conexion->result($rs, $indice, 'pregunta');
$this->respuesta = $_conexion->result($rs, $indice, 'respuesta');
$this->opcion_a = $_conexion->result($rs, $indice, 'opcion_a');
$this->opcion_b = $_conexion->result($rs, $indice, 'opcion_b');
$this->opcion_c = $_conexion->result($rs, $indice, 'opcion_c');
}
}
function getCantTotal(){
global $_conexion;
$sql = "SELECT count(*) as cantidad FROM concursoVerano2015_preguntas";
$rs = $_conexion->query($sql);
$cant = $_conexion->numrows($rs);
return ($cant > 0) ? $_conexion->result($rs, 0, "cantidad") : 0;
}
//Generamos la funcion de recoger por id;
function getById($id){
global $_conexion;
$item = new ConcursoVerano2015Preguntes();
if($id != ''){
$sql = "SELECT * FROM concursoVerano2015_preguntas WHERE id = '$id'";
$rs = $_conexion->query($sql);
$item->cargar($rs, 0);
}
return $item;
}
//Generamos la funcion de recoger por id;
function getRandomQuestion(){
global $_conexion;
$item = new ConcursoVerano2015Preguntes();
$sql = "SELECT * FROM concursoVerano2015_preguntas T JOIN (SELECT FLOOR(MAX(ID)*RAND()) AS ID FROM concursoVerano2015_preguntas) AS x ON T.ID >= x.ID LIMIT 1;";
$rs = $_conexion->query($sql);
$item->cargar($rs, 0);
return $item;
}
//Generamos la funcion de recoger por id;
function checkIfCorrectAnswer($inIdQuestion, $answered = 0){
global $_conexion;
$item = new ConcursoVerano2015Preguntes();
if($inIdQuestion != ''){
$sql = "SELECT * FROM concursoVerano2015_preguntas WHERE id = '$inIdQuestion';";
$rs = $_conexion->query($sql);
$item->cargar($rs, 0);
}
return ($item->respuesta == $answered);
}
//Generamos el metodo que ejecuta un sql de listado;
function getListadoSQL($sql){
global $_conexion;
$rs = $_conexion->query($sql);
$cant = $_conexion->numrows($rs);
$listado = Array();
for($cont = 0; $cont < $cant; $cont++){
$item = new ConcursoVerano2015Preguntes();
$item->cargar($rs, $cont);
array_push($listado, $item);
}
return $listado;
}
//Generamos el metodo que devuelve todo el listado de elementos;
function getListado(){
$sql = "SELECT * FROM concursoVerano2015_preguntas";
return ConcursoVerano2015Preguntes::getListadoSQL($sql);
}
}
?>