Ir ao conteúdo
  • Cadastre-se

Problema com Consulta MYSQL em C


Posts recomendados

Boa Noite, estou batendo cabeça há horas pra tentar resolver esse problema e não consigo.

 

Seguinte:

estou fazendo um sistema de login e senha pra um programa, onde o programa deve buscar no banco de dados do mysql o login e a senha da pessoa, comparar, se for igual, ele aprova a entrada, se não, ele acusa o erro.  tentei usar select, mas ele aparentemente ta buscando a coluna inteira e não só uma opção. gostaria de saber como faço pra na hora da consulta, ele pesquisar apenas o login que a pessoa digitou e depois buscar só a senha no banco de dados e comparar com a que a pessoa digitou.

 

Eis uma parte do Código:

PS: no Banco de dados já tem registrado alguns logins e senhas, só pra comparar.

MYSQL_RES *makeQuery(MYSQL conn,char *str);
void printRes(MYSQL_RES *res);
void freeRes(MYSQL_RES *res);

struct rgcad{
    char loginmain[12];
    char passemain[12];
}cadastro;

int main(){
    MYSQL conn;
    MYSQL_RES *res;
    mysql_init(&conn);
    if(mysql_real_connect(&conn,"localhost","root","","teste",0,NULL,0))
    {
        printf("\t\t\tBanco de dados Conectado!\n\n");
    }else{
    printf("Erro: %s\n",mysql_error(&conn));
  }
    printf("\t\t\tDigite seu Login: \n");
    gets(cadastro.loginmain);
    char *query = "select login from teste;";
    res = makeQuery(conn,query);
    printf("%s", res);
    if (strcmp (cadastro.loginmain,res) == 0 )
    {
        freeRes(res);
        printf("\t\t\tDigite a Senha: \n");
        gets(cadastro.passemain);
        char *query = "select (senha) from teste;";
        res = makeQuery(conn,query);
        if (strcmp (cadastro.passemain,res) == 0 )
        {
            main1();
        }else
        {
            printf("\t\t\tSenha errada!\n");
        }
    }else
    {
        printf("\t\t\tLogin Inexistente!\n");
    }
return 0;
}

MYSQL_RES *makeQuery(MYSQL conn,char *str){
  MYSQL_RES *res;
  MYSQL conexao;
  conexao = conn;
  if(mysql_query(&conexao,str)){
    printf("Erro: %s\n",mysql_error(&conexao));
  }else{
    res = mysql_store_result(&conexao);
    if(res){
      return res;
    }
  }
  return NULL;
}
void freeRes(MYSQL_RES *res){
  mysql_free_result(res);
}

 

Link para o comentário
Compartilhar em outros sites

// essa query retornará apenas 1 resultado caso o nome de usuário seja unique, ou seja, não tenha dois 'username' iguais
query -> "SELECT * FROM login WHERE username='nome_de_usuario'"

//sql_store_result...
//row = sql_fetch_row...
  
// ex: table login:
// id, username, password. row* size = 3

if(row[posicao do username]/*row[1] = username*/ != input.username)
{
	// conta nao encontrada
}

if(row[posicao da senha]/*row[2] = senha*/ != input.password)
{
	// senha incorreta
}

@Getúlio Melo

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!