Duda acerca de Mysql. -
Jastak - 21.08.2015
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.)
Re: Duda acerca de Mysql. -
Jastak - 21.08.2015
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б.
Respuesta: Duda acerca de Mysql. -
DesingMyCry - 21.08.2015
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.
Re: Duda acerca de Mysql. -
Jastak - 21.08.2015
me refiero que si se puede guardar arrays en Mysql y su fuese asн en pawn (con a_mysql) como la extraigo?
Respuesta: Duda acerca de Mysql. -
Yerro - 21.08.2015
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.
Re: Duda acerca de Mysql. -
spell - 22.08.2015
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
Respuesta: Duda acerca de Mysql. -
Miguelito9801 - 22.08.2015
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;
}
Re: Respuesta: Duda acerca de Mysql. -
Jastak - 22.08.2015
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)