function right($str, $length) {
return substr($str, -$length);
}
function left($str, $length) {
return substr($str, 0, $length);
}
$actualizado=false;
$hoy=getdate();
//aquí comprobaré fecha y hora de fin de test para actualizar la tabla equipos con los puntos obtenidos
$fecha = $hoy[year] . "-" . $hoy[mon] . "-" . $hoy[mday] . " " . $hoy[hours] . ":" . $hoy[minutes] . ":" . $hoy[seconds];
//$fecha = "2009-04-25 18:00:00"; //primer test activo
$result = mysql_query("SELECT * FROM test where fechaFin<='" . $fecha . "' order by fechaFin desc", $link);
//echo "SELECT * FROM test where fechaFin<='" . $fecha . "'";
$row = mysql_fetch_array($result);
if (mysql_num_rows($result)!=0) { //quiere decir que hay un test finalizado y que hay que sumar los resultados no rankeados a equipos
$result2 = mysql_query("SELECT * FROM resultados where codigoTest=" . $row["codigo"] . " and rankeado=0 order by codigoEquipo", $link);
//echo "SELECT * FROM resultados where codigoTest=" . $row["codigo"] . " and rankeado=0 order by codigoEquipo";
if (mysql_num_rows($result2)!=0) { //quiere decir que hay que sumar a estos equipos la puntuaciones no rankeadas
$actualizado=true;
while ($row2 = mysql_fetch_array($result2)){
//consulta de actualización
$puntos=$row2["puntosTest"] + $row2["puntosExtra"];
$ssql="update equipos set puntos=puntos+" . $puntos . ", puntosT" . $row["codigo"] . "=" . $puntos . " where codigo=" . $row2["codigoEquipo"];
//$ssql="update equiposC2 set puntos=puntos+" . $puntos . " where codigo=" . $row2["codigoEquipo"];
mysql_query($ssql, $link);
$ssql="update resultados set rankeado=1 where codigo=" . $row2["codigo"];
mysql_query($ssql, $link);
}
}
if ($actualizado){ //sino hemos actualizado no tengo que reposicionar
//actualizo el puesto por test, primero consulto resultados
$resultP = mysql_query("SELECT * FROM resultados where codigoTest=" . $row["codigo"] . " order by (puntosTest+puntosExtra) desc, fechaEnvio", $link);
$puestoT=1;
while ($rowP = mysql_fetch_array($resultP)){
$ssql="update equipos set puestoT" . $row["codigo"] . "=" . $puestoT . " where codigo=" . $rowP["codigoEquipo"];
mysql_query($ssql, $link);
$puestoT=$puestoT+1;
}
mysql_free_result($resultP);
//actualizo el puesto general
$resultP = mysql_query("select * from equipos order by puntos desc, puestoT1, puestoT2, puestoT3, puestoT4, puestoT5", $link);
$puestoT=1;
while ($rowP = mysql_fetch_array($resultP)){
$ssql="update equipos set puesto=" . $puestoT . " where codigo=" . $rowP["codigo"];
mysql_query($ssql, $link);
$puestoT=$puestoT+1;
}
mysql_free_result($resultP);
}
}
//actualizo el puesto general
$resultP = mysql_query("select * from equipos order by puntos desc, puestoT1, puestoT2, puestoT3, puestoT4, puestoT5", $link);
$puestoT=1;
while ($rowP = mysql_fetch_array($resultP)){
$ssql="update equipos set puesto=" . $puestoT . " where codigo=" . $rowP["codigo"];
mysql_query($ssql, $link);
$puestoT=$puestoT+1;
}
mysql_free_result($resultP);
?>
El MegaTest
if (mysql_num_rows($result)==0) { ?>
Todavía no hay resultados en el ranking.
}else{ ?>
Este es el ranking con las puntuaciones obtenidas por los equipos hasta el echo $row["test"] ?>.
$col = $_GET["col"];
$orden = $_GET["orden"];
?>
0";
if ($orden==""){
$ssql=$ssql . " and puesto<>0";
}else{
$ssql=$ssql . " and puestoT" . $orden . "<>0";
}
if ($col!=""){
$ssql = $ssql . " and LOWER(nombre) like '%" . strtolower($col) . "%'";
}
switch($orden){
case "1": $ssql=$ssql . " order by puestoT1";
break;
case "2": $ssql=$ssql . " order by puestoT2";
break;
case "3": $ssql=$ssql . " order by puestoT3";
break;
case "4": $ssql=$ssql . " order by puestoT4";
break;
case "5": $ssql=$ssql . " order by puestoT5";
break;
case "": $ssql = $ssql . " order by puesto";
break;
}
$rs = mysql_query($ssql,$link);
$num_total_registros = mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);
//pongo el número de registros total, el tamaño de página y la página que se muestra
?>
if ($num_total_registros==0){
?>
No hay equipos
if ($col!="") { ?>
con el criterio de búsqueda seleccionado seleccionado.
} ?>
}else{
?>
echo $num_total_registros . " equipo(s)";
//echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una ";
//echo "Mostrando la página " . $pagina . " de " . $total_paginas . "
";
?>
//construyo la sentencia SQL
$ssql = "select * from equipos where codigo<>0";
if ($orden==""){
$ssql=$ssql . " and puesto<>0";
}else{
$ssql=$ssql . " and puestoT" . $orden . "<>0";
}
if ($col!=""){
$ssql = $ssql . " and LOWER(nombre) like '%" . strtolower($col) . "%'";
}
switch($orden){
case "1": $ssql=$ssql . " order by puestoT1";
break;
case "2": $ssql=$ssql . " order by puestoT2";
break;
case "3": $ssql=$ssql . " order by puestoT3";
break;
case "4": $ssql=$ssql . " order by puestoT4";
break;
case "5": $ssql=$ssql . " order by puestoT5";
break;
case "": $ssql = $ssql . " order by puesto";
break;
}
$ssql=$ssql . " limit " . $inicio . "," . $TAMANO_PAGINA;
$rs = mysql_query($ssql);
?>
//muestro los distintos índices de las páginas, si es que hay varias páginas
//if ($total_paginas > 1){
//for ($i=1;$i<=$total_paginas;$i++){
// if ($pagina == $i)
//si muestro el índice de la página actual, no coloco enlace
// echo "" . $pagina . " ";
//else
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
// echo "" . $i . " ";
//}
//}
?>
$posicionCentral=5; //Es la posición central del nº de paginas que mostrará, en este caso muestra nueve, por lo que la posicion central es 5
$paginasMostradas=($posicionCentral*2)-1;
if ($total_paginas > 1){
?>
}
//ahora miramos en que pagina se debe inciar el bucle en cada caso
$inicio=0;
if ($pagina<=$posicionCentral){
$inicio=1;
}
if ($pagina>$total_paginas-$posicionCentral){
$inicio=$pagina-$posicionCentral+1;
if ($inicio<1) {
$inicio=1;
}
}
if ($inicio==0){
$inicio=$pagina-$posicionCentral+1;
}
$hasta=$inicio+$paginasMostradas;
for ($i=$inicio;$i<=$hasta-1;$i++){
if ($i<=$total_paginas){
?>
if ($i==$pagina){
$color="F4C3C5";
}else{
$color="FCFAFC";
}?>
}else{?>
}?>
}//end del if
} // end del for
if ($pagina<=$total_paginas-$posicionCentral){
?>