[Ayuda] top players mysql R33
#2

Tengo una duda, tampoco se mucho de mysql, y es algo enredado, pero ese bucle que hiciste cuando termina?, dices que no te abre el dialogo, no estarбs creando un bucle infinito?, o no te estarб entrando al bucle?, reitero, no se mucho de mysql.

EDIT:
Haciendo pruebas a tu cуdigo me encontrй con esto:

Recuerda que si usas MySql es asi en el format: SELECT `Kills`, `Nombre` FROM `topscore` ORDER BY `Kills` DESC LIMIT 10

Pero segъn tu format lo necesitas asн:
Код:
"SELECT `Kills`, `Nombre`, `Experiencia` FROM `topscore` ORDER BY `Kills` DESC LIMIT 10"
Correciуn a tu code:
Код:
format(topstring,sizeof(topstring),"#\tNombre\tScore\tExperiencia\n\%d\t%s\t%d",idx,PlayerName,Score);
Haces el formato y ahora tienes que mostrarlo al fuera del loop :
Код:
ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_TABLIST_HEADERS, "Top Players", topstring, "Salir", "");
Код:
new topstring[700]; //En este caso si es necesario por que vamos a concatenar,  pero el problema es que esto nunca se concatena con el format.
new query[720]; //Cuando se guarda informaciуn del usuario (OnPlayerDisconnect)
No hagas cadenas tan grandes en el query es necesario pero para el format no:
Код:
new topstring[128], query[256];
Concatenando:

Код:
new topstring[128], outtopstring[700]= "#\tNombre\tScore\tExperiencia";
while(idx < cache_num_rows())
 {
    format(topstring, sizeof(topstring), "\n\%d\t%s\t%d\t%d",idx, PlayerName, Score, Exp);
    strcat(outtopstring, topstring);
}
ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_TABLIST_HEADERS, "Top Players", outtopstring, "Salir", "");
Код:
while(cache_num_rows())
Como dije antes, es infito o nunca entra al ciclo, їpor que? Si no haces bien la llamada del query a la base de datos no funcionara:
Код:
SELECT `Kills`, `Nombre`, `Experiencia` FROM `topscore` ORDER BY `Kills` DESC LIMIT 10 //Esto lo puedes testear en el mismo MySql
Uso correcto:
Код:
while(idx < cache_num_rows()) //Llevas un numero que gesitona la cantidad de usuarios que se debe de mostrar antes del final
PD: No te organizare el cуdigo, dejare que lo hagas tu, aquн tenes con lo que yo testeo el cуdigo:

їQue te recomiendo?
Hacer pruebas en un new.pwn donde ejecutes tu cуdigo en el main: Asн hice las pruebas:

Код:
main()
{
	new query[256], idx , PlayerName[MAX_PLAYER_NAME], Score, Exp;
	mysql_format(MYSQL, query, sizeof(query), "SELECT `Kills`, `Nombre`, `Experiencia` FROM `topscore` ORDER BY `Kills` DESC LIMIT 10");
 	mysql_query(MYSQL, query);
	printf("Num rows: %d", cache_num_rows());
 	while(idx < cache_num_rows())
 	{
 	    cache_get_field_content(idx, "Nombre", PlayerName);
		Score = cache_get_field_content_int(idx, "Kills");
		Exp = cache_get_field_content_int(idx, "Experiencia");
		idx++;
		printf("#\tNombre\tScore\tExperiencia\n\%d\t%s\t%d\t%d", idx, PlayerName, Score, Exp);
		printf("Estoy en en bucle numero: %d, Num rows: %d", idx, cache_num_rows());
 	}
	print("Salн del ciclo");
}
Reply


Messages In This Thread
[Ayuda] top players mysql R33 - by mcreed - 28.07.2015, 04:06
Respuesta: [Ayuda] top players mysql R33 - by TheMatius - 28.07.2015, 17:51
Respuesta: [Ayuda] top players mysql R33 - by DesingMyCry - 28.07.2015, 18:20
Respuesta: [Ayuda] top players mysql R33 - by ForTrezZ - 28.07.2015, 18:47
Respuesta: [Ayuda] top players mysql R33 - by DesingMyCry - 28.07.2015, 19:36
Respuesta: [Ayuda] top players mysql R33 - by TheMatius - 28.07.2015, 19:39
Respuesta: [Ayuda] top players mysql R33 - by DesingMyCry - 28.07.2015, 19:48
Respuesta: [Ayuda] top players mysql R33 - by mcreed - 28.07.2015, 21:45
Respuesta: [Ayuda] top players mysql R33 - by TheMatius - 28.07.2015, 22:29
Respuesta: [Ayuda] top players mysql R33 - by mcreed - 28.07.2015, 23:16

Forum Jump:


Users browsing this thread: 2 Guest(s)