Duda acerca de Mysql.
#1

Ok, la duda de Mysql es como hacer para que en una sola celda almacenar un array de por ejemplo 10, cada uno con diferentes valores.? (para evitar crear 10 celdas mбs y solo usar 1.)
Reply
#2

Perdуn por el double post pero solo quiero saber si se puede o no, no es necesario que me digan como si la respuesta es un "no", claro estб.
Reply
#3

No te expresas bien.

Hablas de que si es posible guardar un array de pawn, en una (y solo una) columna de MySQL? si a esto te refieres, si es posible.
Reply
#4

me refiero que si se puede guardar arrays en Mysql y su fuese asн en pawn (con a_mysql) como la extraigo?
Reply
#5

Buenas,

No comprendo lo que realmente quieres hacer... las celdas van asн: fila x columna. X fila e Y columna definen a cada celda, lo que tu quieres hacer їquй es exactamente?

їEsto?

Pj: Celda1 -> 0,1,45,23

Un saludo.
Reply
#6

En MySQL hay un tipo de dato llamado BLOB para guardar datos binarios. Tambien existe una forma (no muy elegante) pero que es mбs fбcil de aplicar en pawn con mysql: Guardarlo como si fuera un "varchar" con comas.
Ejemplo, tenes el array "new x[] = {1, 2, 3};" entonces lo guardбs como "1,2,3" en un campo varchar (usando format) y despues lo lees usando unformat o sscanf.
Ej en la tabla test "CREATE TABLE test (array1 VARCHAR(40))"

pawn Код:
new sqlStatement[200], arrayToSave[] = {1, 2, 3};
format(sqlStatement, 200, "insert into test array1 values ('%d,%d,%d')", arrayToSave[0], arrayToSave[1], arrayToSave[2]);
Este metodo puede ser mas claro de comprender, su desventaja es que desperdicia memoria, ya que en cada caracteres decimales en vez de bytes. No deberia ser un problema.

Para leer, se lee como un varchar normal. Ejemplo, cargas el varchar en "arrayVarchar":
pawn Код:
new myArray[3];
sscanf(arrayVarchar, "p<,>iii", myArray[0], myArray[1], myArray[2]);
Y ya cargaste el array
Reply
#7

Crea una funciуn que al spawnear haga esto
AsignarDatosAlJugador(playerid)
{

cache_get_field_content();// esta funcion da a obtener/traer un string o cadena de texto
un ejemplo seria
cache_get_field_content(0, "strPassword", Jugador[playerid][Password], cMySQL, 129);
el 0 es el resultado de la bd, el "strPassword" es el campo que quieres coger de la bd, el Jugador[playerid][Password] es el valor que quieres que contenga este valor traido de la bd, el 129 es el tamaсo o caracteres que quieres que contenga.
PARA TRAER UN VALOR ENTERO ES DIFERENTE SE ULTILIZA ESTA FUNCION:
cache_get_field_content_int();
Un ejemplo seria:
Jugador[playerid][Score] = cache_get_field_content_int(0, "intScore");
el Jugador[playerid][Score] es el valor que quieras que contenga el valor traido, el 0 es el resultado de la bd, el "intScore" es el que campo que quieres coger de la bd!

return 1;
}
Reply
#8

Quote:
Originally Posted by Miguelito9801
Посмотреть сообщение
Crea una funciуn que al spawnear haga esto
AsignarDatosAlJugador(playerid)
{

cache_get_field_content();// esta funcion da a obtener/traer un string o cadena de texto
un ejemplo seria
cache_get_field_content(0, "strPassword", Jugador[playerid][Password], cMySQL, 129);
el 0 es el resultado de la bd, el "strPassword" es el campo que quieres coger de la bd, el Jugador[playerid][Password] es el valor que quieres que contenga este valor traido de la bd, el 129 es el tamaсo o caracteres que quieres que contenga.
PARA TRAER UN VALOR ENTERO ES DIFERENTE SE ULTILIZA ESTA FUNCION:
cache_get_field_content_int();
Un ejemplo seria:
Jugador[playerid][Score] = cache_get_field_content_int(0, "intScore");
el Jugador[playerid][Score] es el valor que quieras que contenga el valor traido, el 0 es el resultado de la bd, el "intScore" es el que campo que quieres coger de la bd!

return 1;
}
what? eso no tiene sentido, no estoy preguntando eso.. (da igual mi duda ya fue aclarada)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)