Ir para conteúdo
Fórum Script Brasil
  • 0

[Dúvida] mysql_fetch_row


Usurname

Pergunta

 

Olá,

Alguém sabe dizer porque o sistema trava quando eu tento usar a função "mysql_fecth_row()" usando MySQL com o Dev-C++?

Se eu comentar as partes que estão o código do mysql_fetch_row, o sistema funciona. Se eu colocar sem comentarios o mysql_fetch_row, a aplicação trava. Resumindo, a aplicação trava quando chega na parte que tem o mysql_fetch_row.

 

Código:

 

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <mysql/mysql.h>


using namespace std;

int valor = 1;
int opcaoPesquisarAluno = 1;
int opcaoAlterarAluno = 1;

char nome[30];
char matricula[30];
char telefone[30];
char queryString[100];
char queryStringPesquisa[100];
char mysqlquery[100];

FILE *conteudo;
FILE *conteudoPesquisaAluno;

int main()
{
	char *host = "localhost";
	char *username = "username";
	char *password = "password";
	char *database = "aluno";
	
	
	
	MYSQL *socket;
	socket = mysql_init(0);
	if (socket)
	{
		//cout << "socket ok" << endl;
	}
	else
	{
		//cout << "socket failed" << mysql_error(socket) << endl;
	}
	
	if (mysql_real_connect(socket,host,username,password,database,0,NULL,0))
	{
		//cout << "Conexao ok" << endl;
	}
	else
	{
		//cout << "Conexao falhou" << mysql_error(socket) << endl;
	}
	
    while (valor != 4)
    {
	cout << "\n*******************"
		 << "\n"
		 << "1 - Cadastrar Aluno"
		 << "\n"
		 << "2 - Pesquisar Aluno"
		 << "\n"
		 << "3 - Alterar Aluno"
		 << "\n"
		 << "4 - Sair"
		 << "\n"
		 << "*******************";

    cout << "\nDigite uma opcao: ";
    cin >> valor;
    
    system("cls");
    
    if (valor == 1)
    {
    	conteudo = fopen("file.txt","+a");
    	
    	cout << "\n*******************"
    	     << "\n"
    	     << "Cadastrar Aluno"
    	     << "\n"
    	     << "*******************"
    	     << "\n"
    	     << "Digite o nome do Aluno: ";
    	cin >> nome;
    	
    	cout << "\n"
    		 << "Digite a matricula do Aluno: ";
    	cin >> matricula;
    	
    	cout << "\n"
    	     << "Digite o telefone do Aluno: ";
    	cin >> telefone;
    	
    	fprintf(conteudo,"INSERT INTO aluno(nomeALuno,matricula,telefone) values ('%s','%s','%s');\n",nome,matricula,telefone);
    	fclose(conteudo);
    	
    	conteudo = fopen("file.txt","r");
    	fgets(queryString,100,conteudo);
    	fclose(conteudo);
    	
    	//cout << queryString;
    	
    	mysql_query(socket,queryString);	
		
    	//cout << mysql_error(socket);
    	
    	system("cls");
    }
    
    if (valor == 2)
    {
    	while(opcaoPesquisarAluno != 3)
    	{
    		
    	cout << "\n*******************"
    	     << "\n"
    	     << "Pesquisar Aluno"
    	     << "\n"
    	     << "*******************"
    	     << "\n"
    	     << "1 - Pesquisar pelo nome do Aluno"
    	     << "\n"
    	     << "2 - Pesquisar pela matricula do Aluno"
    	     << "\n"
    	     << "3 - Voltar ao Menu Principal";
        
        cout << "\nDigite uma opcao: ";
        cin >> opcaoPesquisarAluno;
        
    	if (opcaoPesquisarAluno == 1)
    	{
    	   conteudoPesquisaAluno = fopen("filePesquisa.txt","+a");
    	   
    	   cout << "\nDigite o Nome do Aluno: ";
    	   cin >> nome;
    	   
    	   fprintf(conteudoPesquisaAluno,"SELECT * FROM aluno WHERE nome == '%s');\n",nome);
    	   
		   fgets(queryStringPesquisa,100,conteudoPesquisaAluno); 
		   
		   mysql_query(socket,queryStringPesquisa);
    	   
    
    	   MYSQL_RES * res = mysql_store_result(socket);
    	   fclose(conteudoPesquisaAluno);
    	   
    	   //conteudoPesquisaAluno = fopen()
    	   
    	   //int numColumns = mysql_num_fields(res);
    	   
    	   MYSQL_ROW row;
    	   
    	   //cout << mysql_fetch_row(res);
    	   
    	   row = mysql_fetch_row(res);
    	   //cout << row[0];
    	   //cout << row[1];
    	   
    	   // mysql_fetch_row retorna um array caso positivo ou retorna FALSE caso nao tenha mais linhas
    	   /*while((row = mysql_fetch_row(res)) != FALSE)
    	   {
    	   	  for(int x=0; x < 3; x++)
    	   	  {
    	      cout << "nome aluno: " << row[0];
			  cout << "matricula aluno: " << row[0];
			  cout << "telefone: " << row[0];
		      }
    	   } */
    	   mysql_free_result(res); 
    	   cout << "teste";
    	   //conteudoPesquisaAluno = fopen("filePesquisa.txt","r");
    	   
    	   
    	   
    	   
    	   //cout << queryStringPesquisa;
    	   
    	   
    	   
    	   system("PAUSE");
    	   
    	   system("cls");
    	}
    	
    	if (opcaoPesquisarAluno == 2)
    	{
    	   cout << "\nDigite a matricula do Aluno: ";
    	   cin >> matricula;
    	   system("cls");
        }
    	
    	if (opcaoPesquisarAluno == 3)
    	{
    		system("cls");
    		valor = 1;
    		opcaoPesquisarAluno = 1;
    		break;
    	}
        }
    }
    if (valor == 3) 
    {   
       while (opcaoAlterarAluno != 3)
       {
          cout << "\n*******************"
    	       << "\n"
    	       << "Alterar Aluno"
    	       << "\n"
    	       << "*******************"
    	       << "\n"
    	       << "1 - Pesquisar pelo nome do Aluno"
    	       << "\n"
    	       << "2 - Pesquisar pela matricula do Aluno"
    	       << "\n"
    	       << "3 - Voltar ao Menu Principal";
    	     
          cout << "\nDigite uma opcao: ";
    	  cin >> opcaoAlterarAluno;
    	  
    	  if (opcaoAlterarAluno == 1)
    	  {
    	     cout << "\nDigite o nome do Aluno: ";
    	     cin >> nome;
    	  }
    	  if (opcaoAlterarAluno == 2)
    	  {
    	  	 cout << "\nDigite a matricula do Aluno: ";
    	  	 cin >> matricula;
    	  }
    	  if (opcaoAlterarAluno == 3)
    	  {
    	  	 valor = 1;
    	  	 opcaoAlterarAluno = 1;
    	  	 system("cls");
    	  	 break;
    	  }
    	  system("cls");
       }
    }
	}
    return 0;
}

 

Obrigado.

 

 

Editado por Usurname
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...