Ver Mensaje Individual
  #12 (permalink)  
Antiguo 29/05/2012, 11:47
jona86
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: crear un ranking

Disculpa mis formas en el último post, no estaba enfadado, simplemente había tenido un mal día y lo pagué escribiendo la respuesta.

Ya he logrado una solución al problema, no sé si será la mejor optimizada, pero me base en C y luego fui cambiandolo a php. Aquí la dejo por si a alguien le sirve:

Código PHP:
<?php  

$sqlresultados 
"SELECT rid, cid, pos, tiempo FROM nuke_resultados_ciclocross";
$resultresultados mysql_query($sqlresultados);
while (list (
$carrera,$corredor,$posicion,$tiempo) = mysql_fetch_row ($resultresultados)){
      
      
$sqlcarrera "SELECT tipo FROM nuke_calendario_ciclocross WHERE id = $carrera";
      
$resultcarrera mysql_query($sqlcarrera);
      list (
$categoria) = mysql_fetch_row ($resultcarrera);

      if (
$categoria == 8) {
      
            if (
$posicion == 1) $$corredor = $$corredor +8;
            if (
$posicion == 2) $$corredor = $$corredor +6;
            if (
$posicion == 3) $$corredor = $$corredor +5;
            if (
$posicion == 4) $$corredor = $$corredor +4;
            if (
$posicion == 5) $$corredor = $$corredor +3;
            if (
$posicion == 6) $$corredor = $$corredor +2;
            if (
$posicion == 7) $$corredor = $$corredor +1;
            if (
$posicion == 8) $$corredor = $$corredor +1;
            if (
$posicion == 9) $$corredor = $$corredor +1;
            if (
$posicion == 10) $$corredor = $$corredor +1;
      
      }

      if (
$categoria == 7) {
      
            if (
$posicion == 1) $$corredor = $$corredor +13;
            if (
$posicion == 2) $$corredor = $$corredor +11;
            if (
$posicion == 3) $$corredor = $$corredor +9;
            if (
$posicion == 4) $$corredor = $$corredor +7;
            if (
$posicion == 5) $$corredor = $$corredor +6;
            if (
$posicion == 6) $$corredor = $$corredor +5;
            if (
$posicion == 7) $$corredor = $$corredor +4;
            if (
$posicion == 8) $$corredor = $$corredor +3;
            if (
$posicion == 9) $$corredor = $$corredor +2;
            if (
$posicion == 10) $$corredor = $$corredor +1;
            if (
$posicion == 11) $$corredor = $$corredor +1;
            if (
$posicion == 12) $$corredor = $$corredor +1;
            if (
$posicion == 13) $$corredor = $$corredor +1;
            if (
$posicion == 14) $$corredor = $$corredor +1;
            if (
$posicion == 15) $$corredor = $$corredor +1;
      
      }


}

$sqlcorredor "SELECT id, nombre, apellidos, nacionalidad FROM nuke_corredores_cc";
$resultcorredor mysql_query($sqlcorredor);

while (list (
$id,$nombre,$apellidos,$pais) = mysql_fetch_row ($resultcorredor)){

$puntuacion[$id] = $$id;
}

arsort($puntuacion);
mostrar_array ($puntuacion);

Function 
mostrar_array ($array)
{
   echo
"<table style=\"font-size: 8pt\" id=\"tabla\"><thead><tr><th width=\"5%\"></th><th width=\"10%\"></th><th width=\"75%\">Corredor</th><th width=\"15%\">Puntos</th></tr></thead><tbody>";
$i=1;
   foreach (
$array as $clave=>$valor)
   {
      
$sqlcorredor2 "SELECT id, nombre, apellidos, nacionalidad FROM nuke_corredores_cc WHERE id = $clave";
      
$resultcorredor2 mysql_query($sqlcorredor2);

      list (
$id,$nombre,$apellidos,$pais) = mysql_fetch_row ($resultcorredor2);

  
$acentos = array("ñ""á""é""í""ó""ú""Ñ""Á""É""Í""Ó""Ú"" ");
  
$sinacentos = array("n""a""e""i""o""u""N""A""E""I""O""U""_");

  
$sqlpais "SELECT nombre FROM nuke_paises WHERE id = '".$pais."'";
  
$resultpais mysql_query($sqlpais);
  list(
$nombre_pais) = mysql_fetch_row($resultpais);
  
$img strtolower(str_replace($acentos$sinacentosutf8_encode($nombre_pais)));

if (
$valor==NULL$valor=0;
echo
"<tr><td align=\"center\">".$i."</td><td align=\"center\"></td><td><a class=\"lbpModal\" href=\"../wp-content/db/ciclistas_cc.php?ciclista=$id\">".utf8_encode($nombre)." ".utf8_encode($apellidos)."</a></td><td align=\"center\">".$valor."</td></tr>";
      
$i++;
   }
   echo
"</tbody></table>";
}

?>