[Ajuda] MySQL
#1

Eu queria Verificar Se o nome da conta que ele digitou existe...

PHP код:
    if(playertextid == PlayerRegistro[11][playerid])  //Button Register
    
{
        if(
pNome[playerid] <= 0) return SendClientMessage(playeridC_ERRO"| ERRO | Nome nгo digitado !");
        if(
pSenha[playerid] <= 0) return SendClientMessage(playeridC_ERRO"| ERRO | Senha nгo digitado !");
        
//format(file, sizeof(file), PASTA_CONTAS, pNome[playerid])
        
if(cache_num_rows() > 0// DOF2_FileExist(file)
        
{
            
SendClientMessage(playeridC_ERRO"| ERRO | Nome digitado jб existe!");
            
PlayerPlaySound(playerid10560.00.00.0);
            return 
1;
        } else {
            
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `Contas`(`Nome`, `Senha`) VALUES ('%s', '%s')"pNome[playerid], pSenha[playerid]);
            
mysql_tquery(IDConexaoQuery"CarregarRegistro""i"playerid);
            
PlayerPlaySound(playerid10560.00.00.0);
            print(
"Conta Cadastrada com sucesso!");
            
CarregarRegistro(playerid);
        }
        return 
1;
    } 
Reply
#2

Acredito que seja isso:

PHP код:
 if(playertextid == PlayerRegistro[11][playerid])  //Button Register 
    

        if(
pNome[playerid] <= 0) return SendClientMessage(playeridC_ERRO"| ERRO | Nome nгo digitado !"); 
        if(
pSenha[playerid] <= 0) return SendClientMessage(playeridC_ERRO"| ERRO | Senha nгo digitado !"); 
        
mysql_format(IDConexaoQuerysizeof(Query), "SELECT `Nome` FROM `Contas` WHERE `Nome` = '%s'",pNome[playerid]); 
        
mysql_query(IDConexaoQuery);
        if(
cache_num_rows() > 0// DOF2_FileExist(file) 
        

            
SendClientMessage(playeridC_ERRO"| ERRO | Nome digitado jб existe!"); 
            
PlayerPlaySound(playerid10560.00.00.0); 
            return 
1
        } else { 
            
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `Contas`(`Nome`, `Senha`) VALUES ('%s', '%s')"pNome[playerid], pSenha[playerid]); 
            
mysql_tquery(IDConexaoQuery"CarregarRegistro""i"playerid); 
            
PlayerPlaySound(playerid10560.00.00.0); 
            print(
"Conta Cadastrada com sucesso!"); 
            
CarregarRegistro(playerid); 
        } 
        return 
1
    } 
Reply
#3

Aproveitando o tуpico... Estou com um problema, quando vou se registrar nгo insere no banco de dados.

PHP код:
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `contas`\
            (`Profissao`, `Nome`, `Senha`, `Admin`, `Level`, `Exp`, `Skin`, `Vip`, `Dinheiro`, `SaldoBancario`, `SpawnX`, `SpawnY`, `SpawnZ`, `SpawnA`)\
            VALUES\
            (`Profissao`='%d', `Nome`='%s', `Senha`='%s', `Admin`='%d', `Level`='%d', `Exp`='%d', `Skin`='%d', `Vip`='%d', `Dinheiro`='%d', `SaldoBancario`='%d', `SpawnX`='%f', `SpawnY`='%f', `SpawnZ`='%f', `SpawnA`='%f'"
,0pNome[playerid], pSenha[playerid],0,0,0,0,0,0,0,0,0,0,0);
            
mysql_tquery(IDConexaoQuery);
            
PlayerPlaySound(playerid10560.00.00.0);
            print(
"Conta Cadastrada com sucesso!");
            
CarregarRegistro(playerid); 
Reply
#4

Quote:
Originally Posted by CALENZ021
Посмотреть сообщение
Aproveitando o tуpico... Estou com um problema, quando vou se registrar nгo insere no banco de dados.

PHP код:
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `contas`\
            (`Profissao`, `Nome`, `Senha`, `Admin`, `Level`, `Exp`, `Skin`, `Vip`, `Dinheiro`, `SaldoBancario`, `SpawnX`, `SpawnY`, `SpawnZ`, `SpawnA`)\
            VALUES\
            (`Profissao`=%d, `Nome`='%s', `Senha`='%s', `Admin`=%d, `Level`=%d, `Exp`=%d, `Skin`=%d, `Vip`=%d, `Dinheiro`=%d, `SaldoBancario`=%d, `SpawnX`=%f, `SpawnY`=%f, `SpawnZ`=%f, `SpawnA`=%f"
,0pNome[playerid], pSenha[playerid],0,0,0,0,0,0,0,0,0,0,0);
            
mysql_tquery(IDConexaoQuery);
            
PlayerPlaySound(playerid10560.00.00.0);
            print(
"Conta Cadastrada com sucesso!"); // Mais uma coisa, coloque o nome do player aqui porque senгo vai ficar difнcil saber qual player fez o cadastro, etc..
            
CarregarRegistro(playerid); 
Ao usar '%d', vocк estб dizendo que o conteъdo й uma string, mas a database estб configurada para receber um nъmero, entгo ela nгo executa o cуdigo.
Код:
(`Profissao`='%d'/*Errado*/, `Nome`='%s' /*Correto*/
Код:
mysql_format(IDConexao, Query, sizeof(Query), "INSERT INTO `contas`\ 
            (`Profissao`, `Nome`, `Senha`, `Admin`, `Level`, `Exp`, `Skin`, `Vip`, `Dinheiro`, `SaldoBancario`, `SpawnX`, `SpawnY`, `SpawnZ`, `SpawnA`)\ 
            VALUES\ 
            (`Profissao`=%d, `Nome`='%s', `Senha`='%s', `Admin`=%d, `Level`=%d, `Exp`=%d, `Skin`=%d, `Vip`=%d, `Dinheiro`=%d, `SaldoBancario`=%d, `SpawnX`=%f, `SpawnY`=%f, `SpawnZ`=%f, `SpawnA`=%f",0, pNome[playerid], pSenha[playerid],0,0,0,0,0,0,0,0,0,0,0); 
            mysql_tquery(IDConexao, Query); 
            PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); 
            print("Conta Cadastrada com sucesso!"); 
            CarregarRegistro(playerid);
Reply
#5

Quote:
Originally Posted by Ermanhaut
Посмотреть сообщение
Ao usar '%d', vocк estб dizendo que o conteъdo й uma string, mas a database estб configurada para receber um nъmero, entгo ela nгo executa o cуdigo.
Код:
(`Profissao`='%d'/*Errado*/, `Nome`='%s' /*Correto*/
Код:
mysql_format(IDConexao, Query, sizeof(Query), "INSERT INTO `contas`\ 
            (`Profissao`, `Nome`, `Senha`, `Admin`, `Level`, `Exp`, `Skin`, `Vip`, `Dinheiro`, `SaldoBancario`, `SpawnX`, `SpawnY`, `SpawnZ`, `SpawnA`)\ 
            VALUES\ 
            (`Profissao`=%d, `Nome`='%s', `Senha`='%s', `Admin`=%d, `Level`=%d, `Exp`=%d, `Skin`=%d, `Vip`=%d, `Dinheiro`=%d, `SaldoBancario`=%d, `SpawnX`=%f, `SpawnY`=%f, `SpawnZ`=%f, `SpawnA`=%f",0, pNome[playerid], pSenha[playerid],0,0,0,0,0,0,0,0,0,0,0); 
            mysql_tquery(IDConexao, Query); 
            PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); 
            print("Conta Cadastrada com sucesso!"); 
            CarregarRegistro(playerid);
PHP код:
    mysql_query(IDConexao"CREATE TABLE IF NOT EXISTS `Contas` (`ID`int AUTO_INCREMENT PRIMARY KEY,`Profissao` varchar(24) NOT NULL DEFAULT 'Desempregado',\
    `Nome`varchar(24) NOT NULL,`Senha` varchar(24) NOT NULL,`Admin` tinyint,`Level` int(10),`Exp` tinyint,`Skin` int(3),\
    `Vip` int(10),`Dinheiro` int(20),`SaldoBancario` int(20),`SpawnX` float(20),`SpawnY` float(20),`SpawnZ` float(20),`SpawnA` float(20))"
false); 
Configurei pra receber string mesmo... e eu acho que '%s' й strings e '%d' ou '%i' й nъmericos

Organizei e coloquei assim :

PHP код:
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `contas` (`ID`, `Profissao`, `Nome`, `Senha`, `Admin`, `Level`, `Exp`, `Skin`, `Vip`, `Dinheiro`, `SaldoBancario`, `SpawnX`, `SpawnY`, `SpawnZ`, `SpawnA`) VALUES (NULL, NULL, '%s', '%s', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"pNome[playerid], pSenha[playerid]); 
Continua nгo criando a contas '-'
Reply
#6

Quote:
Originally Posted by CALENZ021
Посмотреть сообщение
PHP код:
    mysql_query(IDConexao"CREATE TABLE IF NOT EXISTS `Contas` (`ID`int AUTO_INCREMENT PRIMARY KEY,`Profissao` varchar(24) NOT NULL DEFAULT 'Desempregado',\
    `Nome`varchar(24) NOT NULL,`Senha` varchar(24) NOT NULL,`Admin` tinyint,`Level` int(10),`Exp` tinyint,`Skin` int(3),\
    `Vip` int(10),`Dinheiro` int(20),`SaldoBancario` int(20),`SpawnX` float(20),`SpawnY` float(20),`SpawnZ` float(20),`SpawnA` float(20))"
false); 
Configurei pra receber string mesmo... e eu acho que '%s' й strings e '%d' ou '%i' й nъmericos

Organizei e coloquei assim :

PHP код:
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO `contas` (`ID`, `Profissao`, `Nome`, `Senha`, `Admin`, `Level`, `Exp`, `Skin`, `Vip`, `Dinheiro`, `SaldoBancario`, `SpawnX`, `SpawnY`, `SpawnZ`, `SpawnA`) VALUES (NULL, NULL, '%s', '%s', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"pNome[playerid], pSenha[playerid]); 
Continua nгo criando a contas '-'
Entenda que a coluna ID nгo recebe valor, pois o valor й numйrico auto incrementado, ou seja, recebe +1 a cada linha adicionada.

Outra coisa: Os valores, em sua maioria, vocк adiciona NULL ou 0. Isso poderia ser facilmente resolvido com o comando DEFAULT (exatamente igual а coluna Profissao), onde vocк deixa um valor predefinido e, por conta disso, nгo necessita adicionar um valor obrigatoriamente. No entanto, mesmo a coluna Profissao ser opcional, vocк ainda adiciona um valor nulo...

Recomendo, antes de mais nada, estudar MySQL!

Olhe um guia bбsico, como esse: https://www.digitalocean.com/communi...mysql-tutorial
(Ignore a parte da instalaзгo)
Reply
#7

PHP код:
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO contas (Nome, Senha) VALUES ('%s', '%s')"pNome[playerid], pSenha[playerid]); 
Reply
#8

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Entenda que a coluna ID nгo recebe valor, pois o valor й numйrico auto incrementado, ou seja, recebe +1 a cada linha adicionada.

Outra coisa: Os valores, em sua maioria, vocк adiciona NULL ou 0. Isso poderia ser facilmente resolvido com o comando DEFAULT (exatamente igual а coluna Profissao), onde vocк deixa um valor predefinido e, por conta disso, nгo necessita adicionar um valor obrigatoriamente. No entanto, mesmo a coluna Profissao ser opcional, vocк ainda adiciona um valor nulo...

Recomendo, antes de mais nada, estudar MySQL!

Olhe um guia bбsico, como esse: https://www.digitalocean.com/communi...mysql-tutorial
(Ignore a parte da instalaзгo)
Mano muito obrigado pela dica, antes de tudo o meu foco й aprender.
Reply
#9

Quote:
Originally Posted by MBJ
Посмотреть сообщение
PHP код:
mysql_format(IDConexaoQuerysizeof(Query), "INSERT INTO contas (Nome, Senha) VALUES ('%s', '%s')"pNome[playerid], pSenha[playerid]); 
Nгo funcionou, sera que tem que usar algo tipo
PHP код:
"Use `Contas`;" 
Reply
#10

posta o log do mysql
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)