Ayuda MYSQL
#1

Buenas, quiero que cuando uno escriba en el dialog "Masculino/Femenino" se te guarde en "usuarios" de la DB de MYSQL como lo hace con la contraseсa, pero no se guarda, asн tengo lo de CASE SEXO

Quote:

case SEXO:
{
if(!response)
{
new query[200];
PlayerInfo[playerid][pSexo] = 2;

format(query, 200, "UPDATE `usuarios` SET `Skin`='11',`Sexo`='Femenino' WHERE `Nombre`='%s'",PlayerInfo[playerid][pSexo],pName);
mysql_function_query(Conecction, query, true, "OnQueryFinish", "ii", 0, playerid);
}

y Tambiйn estб el de hombre pero no creo que sea necesario ponerlo, la estructura de "Sexo" en usuarios de la DB estб



y no se guarda, sale asн en blanco:

Reply
#2

No estбs dando valor al skin para guardarlo, intenta

pawn Код:
format(query, 200, "UPDATE `usuarios` SET `Skin`= '11',`Sexo`=%d WHERE `Nombre`='%s'",PlayerInfo[playerid][pSexo],pName);
Reply
#3

Estбs usando muy mal el mysql, te recomendarнa que te basaras un poco del cуdigo del gamemode que se publicу en el tуpico de mysql r7 (https://github.com/alejandro-gc/base...ster/mysql.pwn), el UPDATE tengo entendido que vendrнa un poco lento y usarlo asн es un desperdicio. me gustarнa ver OnQueryFinish
Reply
#4

Quote:
Originally Posted by hydewhyd
Посмотреть сообщение
No estбs dando valor al skin para guardarlo, intenta

pawn Код:
format(query, 200, "UPDATE `usuarios` SET `Skin`= '11',`Sexo`=%d WHERE `Nombre`='%s'",PlayerInfo[playerid][pSexo],pName);
Osea no me interesa el guardado de skin, eso estб bien ya, el problema es que quiero que cuando un usuario escriba por ejemplo en el dialogo "Masculino o Femenino" spawn con el skin correspondiente de ese sexo(en el caso hombre es 299 y mujer 11) y te salga en la DB Usuarios "1 = Hombre - 2 = Femenino" o que simplemente diga Hombre - Femenino.
Reply
#5

PHP код:
UPDATE `usuariosSET `Skin` = 11, `Sexo` = 'Femenino' WHERE `Nombre` = '%s' 
No utilice texto para el sexo. Utilizando 0 Masculino y Femenino 1 (por ejemplo)

Lo siento no hablo espaсol.

Usos utf8_general_ci (Cotejamiento)
Reply
#6

Quote:
Originally Posted by Noliax8
Посмотреть сообщение
PHP код:
UPDATE `usuariosSET `Skin` = 11, `Sexo` = 'Femenino' WHERE `Nombre` = '%s' 
No utilice texto para el sexo. Utilizando 0 Masculino y Femenino 1 (por ejemplo)

Lo siento no hablo espaсol.

Usos utf8_general_ci (Cotejamiento)
Es cierto mejor boolealo

pawn Код:
new bool:sexo;
Reply
#7

pawn Код:
enum
{
      // ...
      pSexo,
      // ...
}
new PlayerInfo[....];

ShowSexe(playerid)
{
    new name[10];
    if(PlayerInfo[playerid][pSexo]) format(name, 10, "Male");
    else format(name, 10, "Female");
    return name;
}

/*
    new tmp[156];
    format(tmp, sizeof tmp, "Sexe: %s", ShowSexe(playerid));
    SendClientMessage(playerid, -1, tmp);
*/


UPDATE `usuarios` SET `Skin` = 11, `Sexo` = %d WHERE `Nombre` = '%s'
EDIT: Sexo (MySQL) debe ser Int

Good luck.
Jonas
Reply
#8

Tienes la consulta mal echa:

pawn Код:
format(query, 200, "UPDATE `usuarios` SET `Skin`='11',`Sexo`='Femenino' WHERE `Nombre`='%s'",pName);
Reply
#9

Intenta con el cуdigo de Noliax8, parece estar bien a lo que dices
Reply
#10

Yo tambiйn habнa intentado updatear una tabla obteniendo el nombre del jugador pero no habнa caso, entonces usй el SQLID del jugador y ahн es entonces donde se ejecutу.

Yo tengo PlayerInfo[playerid][pSQLID] para darle la id autoincrementable de las tablas a los jugadores, entonces ahн puedo detectar.

pawn Код:
new rows, fields;
    cache_get_data(rows, fields);
    if(rows > 0) PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "id");
    else PlayerInfo[playerid][pSQLID] = 0;
Lo hago en una callback llamada UnJugadorCheckeandoRegistro y eso lo llamo con un "query" al conectar el jugador, anteriormente selecciono el ID donde el Nombre es el name del jugador IG.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)