Problema TOP MySQL -
EdgarHN - 15.06.2017
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®;
Respuesta: Problema TOP MySQL -
mcreed - 15.06.2017
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");
Respuesta: Problema TOP MySQL -
EdgarHN - 15.06.2017
Actualizare MySQL y lo probare, gracias compaсero
Respuesta: Problema TOP MySQL -
mcreed - 16.06.2017
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.
Respuesta: Problema TOP MySQL -
Matyaas - 16.06.2017
Perdуn por desviar pero como hago esos tipos de dialogos?
Respuesta: Problema TOP MySQL -
EdgarHN - 16.06.2017
Ahi te mande privado
Respuesta: Problema TOP MySQL -
The-Krew - 16.06.2017
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;