Problema TOP MySQL
#1

Hola, mi problema es en un top que hice en MySQL
al cargar la lista del TOP no actualiza cada nombre, y se queda en el que tenga mas Score
Pero el Score si lo cambia, lo que no cambia es el nombre

Imagen:


Codigo:

Код HTML:
			new lista[49+20*(75)],linea[(75)];
   			new Cache:R = mysql_query(MySQLDB,"SELECT Nombre,Score FROM usuarios ORDER BY Score DESC LIMIT 20",true);
			new name[MAX_PLAYER_NAME],score;
			strcat(lista,""BLANCO"#-Nombre\t"BLANCO"Score\t"BLANCO"Estado\n");
			foreachEx(i:cache_num_rows()){
			contador++;
			cache_get_row(i,0,name,MySQLDB,sizeof(name));
			score = cache_get_row_int(i,1);
			format(linea,sizeof(linea),"#%d-%s\t"LIMA"%d\t%s\n",contador,name,score,ObtenerConeccion(name));
			strcat(lista,linea);
			}
			if(!contador)return POFFSET[playerid] = 0 && SendClientMessage(playerid,COLOR_ROJO,"* No hay usuarios en el top score.") && cache_delete®;
			ShowPlayerDialog(playerid,DIALOGO_TOP_SCORE,DIALOG_STYLE_TABLIST_HEADERS,""BLANCO"TOP - "LIMA"Score",lista,"Siguiente","Salir");
			cache_delete®;
Reply
#2

Para ser sincero no entiendo tu codigo, pero aqui te dejo un ejemplo de como deberнa ser (con la versiуn mбs reciente de MySQL):
pawn Код:
new strDialogo[49+20*(75)] =""BLANCO"#\t"BLANCO"Nombre\t"BLANCO"Score\t"BLANCO"Estado\n", strLinea[75], strNombre[MAX_PLAYER_NAME + 1], intScore;
    mysql_query(MySQLDB, "SELECT Nombre, Score FROM usuarios ORDER BY Score DESC LIMIT 20");
    if(!cache_num_rows())
        return SendClientMessage(playerid, COLOR_RED, "No hay jugadores para el TOP :(");
    for(new a = 0, t = cache_num_rows(); a < t; a++)
    {
        cache_get_value_name(a, "Nombre", strNombre);
        cache_get_value_name_int(a, "Score", intScore);
        format(strLinea, sizeof strLinea, "\n#%d\t%s\t%d", a, strNombre, intScore);
        strcat(strDialogo, strLinea);
    }
    ShowPlayerDialog(playerid,DIALOGO_TOP_SCORE,DIALOG_STYLE_TABLIST_HEADERS,""BLANCO"TOP - "LIMA"Score",strDialogo,"Siguiente","Salir");
Reply
#3

Actualizare MySQL y lo probare, gracias compaсero
Reply
#4

El de arriba solo es un ejemplo (osea no sй si este funcional), pero si te recomiendo actualizar, hay funciones nuevas interesantes.
Para mбs facilidad tambiйn te recomiendo utilizar cache_get_value_name y derivados para obtener datos en vez de utilizar los indices, en opiniуn personal es mбs facil a traves del nombre del campo.
Si de pronto necesitas ayuda con el codigo, enviame un mensaje privado.
Reply
#5

Perdуn por desviar pero como hago esos tipos de dialogos?
Reply
#6

Ahi te mande privado
Reply
#7

Hay una manera mбs eficiente de hacer eso usando solo la consulta de sql.

ejemplo.

SET @pos=0;
SELECT @pos:=@pos+1,name FROM players ORDER BY score DESC;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)