Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Ranking PHP

Estas en el tema de Ranking PHP en el foro de PHP en Foros del Web. Buen dia, soy nuevo en el foro espero haber colocado el tema en la seccion correcta. Soy estudiante de programación y diseño web, por lo ...
  #1 (permalink)  
Antiguo 15/12/2014, 06:07
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 11 meses
Puntos: 208
Ranking PHP

Buen dia, soy nuevo en el foro espero haber colocado el tema en la seccion correcta.
Soy estudiante de programación y diseño web, por lo que todavia me cuesta bastante darme cuenta qué codigo usar en cada situación.

Paso a explicar, estoy haciendo una web para unos amigos que son profes de tenis, la web consiste en mostrar las fechas de los torneos, las tablas de los torneos que se estan jugando, los rankings de cada categoria, etc, etc. Estoy en la etapa de crear el ranking, y me encontre con un problema, quiero que la posicion sea fija, que no se corra con el nombre del jugador cada vez que se actualice la puntuacion.

Mi tabla "ranking" tiene 8 columnas:
* id_jugador
* posicion(que creo que deberia borrarla porque no quiero que pertenezca a ningun jugador en especial)
* apellido
* nombre
* t1(torneo1)
* t2(torneo2)
* t3(torneo3)
* total

Código PHP:
<?php
include("conectar.php");

$consulta="SELECT * FROM ranking ORDER BY total DESC"//selecciono todo de la tabla y los ordeno para que el que tenga mayor puntaje quede arriba
$resultado=mysqli_query($conect,$consulta) or die (mysql_error());
$row=mysqli_fetch_array($resultado);

$cons="UPDATE ranking SET total= t1+t2+t3"//para q la suma del total sea automática
$result=mysqli_query($conect,$cons) or die (mysql_error()); 


while(
$row=mysqli_fetch_array($resultado)){
    echo 
'<tr>';
    echo 
'<td>'.'<script language="javascript">
                for (pos = 1; pos <=10; pos++) {
                document.write(pos);
                }</script>'
.'</td>'//esto fue lo ultimo que probé, no se me ocurrio nada mejor, pero obviamente lo que pasa es que me escribe todos los números en cada fila que carga.
    
echo '<td>'.$row["apellido"].'</td>';
    echo 
'<td>'.$row["nombre"].'</td>';
    echo 
'<td>'.$row["t1"].'</td>';
    echo 
'<td>'.$row["t2"].'</td>';
    echo 
'<td>'.$row["t3"].'</td>';
    echo 
'<td>'.$row["total"].'</td>';
    echo 
'</tr>';
}
?>
Las condiciones serian:
1- Que el total se sume automaticamente al cargar los puntos de cada torneo. (ya esta)
2- Que se ordenen por puntaje de mayor a menor. (ya esta)
3- Que la posicion sea un numero fijo en cada fila por mas que se cambie el puntaje y por ende los jugadores cambien de posicion. (me falta esto)

Otro problema que acabo de notar es que no me escribe todos los datos, si alguien se da cuenta donde esta el error le agradeceria tambien que me lo indicara porque no lo encuentro.

Ej:

Esta es mi tabla




Y asi aparece en la web (falta un jugador)




Espero sepan ayudarme y desde ya agradezco que se tomen el tiempo de leer mi problema, perdon de nuevo si el tema no esta en la seccion correcta y si en algo no me supe explicar bien.

Saludos!
  #2 (permalink)  
Antiguo 15/12/2014, 06:27
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Ranking PHP

El contador de "posicion", no lo hagas con Js... puedes hacerlo con php:

Código PHP:
$i 1;
while(
$row=mysqli_fetch_array($resultado)){ 
    echo 
'<tr>'
    echo 
'<td>'.$i.'</td>'//esto fue lo ultimo que probé, no se me ocurrio nada mejor, pero obviamente lo que pasa es que me escribe todos los números en cada fila que carga. 
    
echo '<td>'.$row["apellido"].'</td>'
    echo 
'<td>'.$row["nombre"].'</td>'
    echo 
'<td>'.$row["t1"].'</td>'
    echo 
'<td>'.$row["t2"].'</td>'
    echo 
'<td>'.$row["t3"].'</td>'
    echo 
'<td>'.$row["total"].'</td>'
    echo 
'</tr>'
    
$i++;

Y sobre lo de que te falta un jugador...

si te fijas, haces despues de la consulta un fetch que no muestras... si lo quitas, te saldrá en el bucle ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 15/12/2014, 07:07
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 11 meses
Puntos: 208
Respuesta: Ranking PHP

Cita:
Iniciado por Eleazan Ver Mensaje
El contador de "posicion", no lo hagas con Js... puedes hacerlo con php:

Código PHP:
$i 1;
while(
$row=mysqli_fetch_array($resultado)){ 
    echo 
'<tr>'
    echo 
'<td>'.$i.'</td>'//esto fue lo ultimo que probé, no se me ocurrio nada mejor, pero obviamente lo que pasa es que me escribe todos los números en cada fila que carga. 
    
echo '<td>'.$row["apellido"].'</td>'
    echo 
'<td>'.$row["nombre"].'</td>'
    echo 
'<td>'.$row["t1"].'</td>'
    echo 
'<td>'.$row["t2"].'</td>'
    echo 
'<td>'.$row["t3"].'</td>'
    echo 
'<td>'.$row["total"].'</td>'
    echo 
'</tr>'
    
$i++;

Y sobre lo de que te falta un jugador...

si te fijas, haces despues de la consulta un fetch que no muestras... si lo quitas, te saldrá en el bucle ;)
Use js porque ya no sabia como hacer con PHP jaja y ahora que lo veo era tan simple..

Perfecto Eleazan, totalmente solucionado, muchisimas gracias.

Etiquetas: fecha, mysql, ranking, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.