Mysql Registro[Problema].
#1

Buenas, bueno pues e estado desarollando un registro mysql pero tengo un error, tengo puesto que si la cuenta existe te mande un mensaje y si no esta registrada que te lanze el dialogo para registrarse, os dejo el codigo a ver si me podeis ayudar.

Код:
new nombre[MAX_PLAYER_NAME], query[1024], resultado[1024];
GetPlayerName(playerid, nombre, sizeof(nombre));
format(query, sizeof(query), "SELECT * FROM Usuarios WHERE Nombre = '%s'", nombre);
mysql_query(query);
mysql_store_result();
if (mysql_num_rows() != 0)
{
     // Si el usuario esta registrado
	  SendClientMessage(playerid, -1, "Esta registrado");
}
else
{
    // Si el usuario no esta registrado
	ShowPlayerDialog(playerid, registro, DIALOG_STYLE_PASSWORD, "Registro", "Coloque su contraseсa para crear su cuenta", "Registrar", "Cancelar");
}
Reply
#2

En OnGameModeInit pone:
pawn Код:
mysql_debug(1);
Eso harб que genere un log, es decir, un registro de las operaciones realizadas por el plugin. Luego intenta reproducir el error nuevamente y postea el log.
Reply
#3

Quote:
Originally Posted by lokotela1
Посмотреть сообщение
Buenas, bueno pues e estado desarollando un registro mysql pero tengo un error, tengo puesto que si la cuenta existe te mande un mensaje y si no esta registrada que te lanze el dialogo para registrarse, os dejo el codigo a ver si me podeis ayudar.

Код:
new nombre[MAX_PLAYER_NAME], query[1024], resultado[1024];
GetPlayerName(playerid, nombre, sizeof(nombre));
format(query, sizeof(query), "SELECT * FROM Usuarios WHERE Nombre = '%s'", nombre);
mysql_query(query);
mysql_store_result();
if (mysql_num_rows() != 0)
{
     // Si el usuario esta registrado
	  SendClientMessage(playerid, -1, "Esta registrado");
}
else
{
    // Si el usuario no esta registrado
	ShowPlayerDialog(playerid, registro, DIALOG_STYLE_PASSWORD, "Registro", "Coloque su contraseсa para crear su cuenta", "Registrar", "Cancelar");
}
Prueba asi:

pawn Код:
new query[200], pname[24];
    GetPlayerName(playerid, pname, 24);
    format(query, sizeof(query), "SELECT * FROM `usuarios` WHERE usuario = '%s' LIMIT 1", pname);
    mysql_query(query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(!rows)
    {
    // Si el usuario no esta registrado
    ShowPlayerDialog(playerid, registro, DIALOG_STYLE_PASSWORD, "Registro", "Coloque su contraseсa para crear su cuenta", "Registrar", "Cancelar");
}
    if(rows == 1)
    {
        // Si el usuario esta registrado
      SendClientMessage(playerid, -1, "Esta registrado");
    }
    mysql_free_result();
Reply
#4

Quote:
Originally Posted by The_Scope
Посмотреть сообщение
Prueba asi:

pawn Код:
new query[200], pname[24];
    GetPlayerName(playerid, pname, 24);
    format(query, sizeof(query), "SELECT * FROM `usuarios` WHERE usuario = '%s' LIMIT 1", pname);
    mysql_query(query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(!rows)
    {
    // Si el usuario no esta registrado
    ShowPlayerDialog(playerid, registro, DIALOG_STYLE_PASSWORD, "Registro", "Coloque su contraseсa para crear su cuenta", "Registrar", "Cancelar");
}
    if(rows == 1)
    {
        // Si el usuario esta registrado
      SendClientMessage(playerid, -1, "Esta registrado");
    }
    mysql_free_result();
Configure el codigo para que fuera compatible pero nada, sige igual.

Debug:

Код:
[17:32:35]  

[17:32:35] ---------------------------

[17:32:35] MySQL Debugging activated (09/29/12)

[17:32:35] ---------------------------

[17:32:35]  

[17:32:35] >> mysql_ping( Connection handle: 1 )

[17:32:35] CMySQLHandler::Ping() - Connection is still alive.

[17:32:35]  

[17:32:35] ---------------------------

[17:32:35] MySQL Debugging activated (09/29/12)

[17:32:35] ---------------------------

[17:32:35]  

[17:33:00] >> mysql_query( Connection handle: 1 )

[17:33:00] CMySQLHandler::Query(SELECT * FROM `members` WHERE member_name = 'Zarco' LIMIT 1) - Successfully executed.

[17:33:00] >> mysql_store_result( Connection handle: 1 )

[17:33:00] CMySQLHandler::StoreResult() - Result was stored.

[17:33:00] >> mysql_num_rows( Connection handle: 1 )

[17:33:00] CMySQLHandler::NumRows() - Returned 1 row(s)

[17:33:00] >> mysql_free_result( Connection handle: 1 )

[17:33:00] CMySQLHandler::FreeResult() - Result was successfully free'd.
Reply
#5

Por lo que vн no hay ningъn problema en el momento de la ejecuciуn de la consulta, mysql_num_rows te devuelve 1, significa que el usuario fue encontrado en la tabla de la base de datos, es decir, estб registrado.
Me gustarнa saber cual es el problema especнficamente, їmysql_num_rows no devuelve el valor bien?
Reply
#6

Quote:
Originally Posted by CaptainMactavish
Посмотреть сообщение
Por lo que vн no hay ningъn problema en el momento de la ejecuciуn de la consulta, mysql_num_rows te devuelve 1, significa que el usuario fue encontrado en la tabla de la base de datos, es decir, estб registrado.
Me gustarнa saber cual es el problema especнficamente, їmysql_num_rows no devuelve el valor bien?
Siempre me devuelve 1, osea siempre me dice que esta registrado.
Reply
#7

Es un bug que a mн tambiйn me sucedнa, lo que hice fue actualizar a la R7 y utilizar una nueva funciуn de esta:
pawn Код:
//En algъn lugar
new szQuery[128], szName[MAX_PLAYER_NAME];
GetPlayerName(playerid, szName, sizeof szName);
format(szQuery, sizeof szQuery, "SELECT * FROM Usuarios WHERE Nombre = '%s'", szName);
mysql_function_query(1, szQuery, true, "OnPlayerExists", "i", playerid);
//La callback que va a ser llamada cuando el resultado de la consulta estй listo
forward OnPlayerExists(playerid);
public OnPlayerExists(playerid)
{
    new iRows, iFields;
    cache_get_data(iRows, iFields);
    if(iRows)
    {
        SendClientMessage(playerid, -1, "Esta registrado");
    }
    else
    {
        ShowPlayerDialog(playerid, registro, DIALOG_STYLE_PASSWORD, "Registro", "Coloque su contraseсa para crear su cuenta", "Registrar", "Cancelar");
    }
    return 1;
}
Reply
#8

Quote:
Originally Posted by CaptainMactavish
Посмотреть сообщение
Es un bug que a mн tambiйn me sucedнa, lo que hice fue actualizar a la R7 y utilizar una nueva funciуn de esta:
pawn Код:
//En algъn lugar
new szQuery[128], szName[MAX_PLAYER_NAME];
GetPlayerName(playerid, szName, sizeof szName);
format(szQuery, sizeof szQuery, "SELECT * FROM Usuarios WHERE Nombre = '%s'", szName);
mysql_function_query(1, szQuery, true, "OnPlayerExists", "i", playerid);
//La callback que va a ser llamada cuando el resultado de la consulta estй listo
forward OnPlayerExists(playerid);
public OnPlayerExists(playerid)
{
    new iRows, iFields;
    cache_get_data(iRows, iFields);
    if(iRows)
    {
        SendClientMessage(playerid, -1, "Esta registrado");
    }
    else
    {
        ShowPlayerDialog(playerid, registro, DIALOG_STYLE_PASSWORD, "Registro", "Coloque su contraseсa para crear su cuenta", "Registrar", "Cancelar");
    }
    return 1;
}
e actualizado etc.... y ahora directamente no me sale ni el dialogo para ingresar la pass, te dejo el script para ver si lo puedes arreglar.


http://pastebin.com/WXW6CLr4 .
Reply
#9

Serнa bueno que postearas los logs pero con el plugin actualizado.
Reply
#10

Quote:
Originally Posted by CaptainMactavish
Посмотреть сообщение
Serнa bueno que postearas los logs pero con el plugin actualizado.
Код:
[02:46:36] >> mysql_connect(localhost, root, samp, ******) on port 3306
[02:46:36] CMySQLHandler::CMySQLHandler() - constructor called.
[02:46:36] CMySQLHandler::CMySQLHandler() - Connecting to "localhost" | DB: "samp" | Username: "root"
[02:46:36] CMySQLHandler::Connect() - Connection was successful.
[02:46:36] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[02:46:36]  
[02:46:36]  ** MySQL Debugging enabled (09/30/12)
[02:46:36]  
[02:46:36] >> mysql_ping( Connection handle: 1 )
[02:46:36] CMySQLHandler::Ping() - Connection is still alive.
[02:46:36]  
[02:46:36]  ** MySQL Debugging enabled (09/30/12)
[02:46:36]  
[02:47:10] >> mysql_query_callback( Connection handle: 1 )
[02:47:10] Passing query SELECT * FROM Usuarios WHERE Nombre = 'Zarco' | i
[02:47:10] CMySQLHandler::ProcessQueryThread() - Error will be triggered to OnQueryError()
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)