Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiom2211

Consulta no Mysql

Recommended Posts

Pessoal eu tenho um programa que faz uma consulta no mysql

mas to querendo colocar um tratamento de erro para quando a consulta for vazia ele feche a conexão.

CODIGO:



    mysql_init(&conexao);
     if (mysql_real_connect(&conexao,"localhost","root","","db_graficos",0,NULL,0))
       {
          printf("Conectado com Sucesso!\n");
           if (mysql_query(&conexao,query))
            printf("Erro: %s\n",mysql_error(&conexao));

             else
              {
               resp = mysql_store_result(&conexao);//recebe a consulta
                  if (resp) //se houver consulta
                    {  


                           /* 
[b]                                  Essa condição acima "if (resp)" é apenas se hoouver consulta
                                 As vezes ele faz a consulta e o resultado da consulta é vazio
                                 Ou seja, eu quero colocar uma condição para não entrar aqui quando a consulta for vazia[/b]

                           */



                           FILE *arquivo ;
                           arquivo= fopen(nomexml, "w+");
                          // testa se o arquivo foi aberto com sucesso
                           if(arquivo != NULL)
                           printf("Arquivo criado com sucesso.");
                           else
                           printf("Nao foi possivel criar o arquivo.");
                           {   fprintf(arquivo,"<graph caption=\"Total de Quantidade\" subcaption=\"Vendida no %s\" xAxisName=\"Mes\" yAxisName=\"Quantidade\" numberPrefix=\"\">  \n",title);                        

                                               int contador=0;
                                                            while ((linhas=mysql_fetch_row(resp)) )
                                                            {  
                                                                {                                                                  
                                                                   fprintf (arquivo," name=\"%s\" ",linhas[0]);
                                                                   fprintf (arquivo," value=\"%s\" ",linhas[1]);
                                                                   fprintf (arquivo," value2=\"%s\" ",linhas[2]);
                                                                   fprintf (arquivo," color=\"%s\" ",cor[f]);
                                                                   fprintf (arquivo," link=\"ano_%s_mes_%s_produto.php\" ",ano[0],mes[b]);
                                                                   printf("Ano=========     %s",ano[a]);
                                                                   fprintf(arquivo1," $arrData[%d][1] = \" %s\"; ",contador,linhas[0]);
                                                                   fprintf(arquivo1," $arrData[%d][2] = \" %s\"; ",contador,linhas[1]);
                                                                   fprintf(arquivo1," $arrData[%d][3] = \" ano_%s_mes5.php\"; 
                                                                   fprintf(arquivo1," $arrData[%d][4] = \" %s\"; ",contador,linhas[2]);
                                                                   f++;c++;b++;contador++;
                                                                 }

                                                                  //fprintf (arquivo,"\n");
                             fprintf(arquivo,"/> \n");         }fprintf(arquivo,"</graph>");fclose (arquivo);


                            }}
                           mysql_free_result(resp);//limpa a vari·vel do resultado: resp
                     }
                  mysql_close(&conexao);
             }   

      else
      {
      printf("Conexao Falhou\n");
      if (mysql_errno(&conexao))
      printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
      }
  }

 

 

Att, Fabio Rosa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal até agora eu não to conseguindo eu fiz a seguinte tentativa...

 

(..........)

if (resp != NULL) //se a resposta da consulta for diferente de NULL 
{  

(...)

}
else printf("Consulta vazia")        




(..............)

 

 

Mais a a resposta não ven NULL não sei como tá vindo a resposta quando não há dados no banco

se eu for no banco e colocar no mysql a query a resposta do banco é nenhum dado foi encontrado

 

Att, Fabio Rosa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu conseguir fazer o que eu queria...

Coloquei uma condição para criar o arquivo só se a consulta for diferente de 0(zero)

Mas quando entra no lupe para buscar os resultados das linhas elas estão todas vazias

 

Única coisa que eu fiz diferente foi utilizar a função mysql_fecth_row(resp) mais de uma vez....

primeiro eu fiz a condição if (mysql_fecth_row(resp) != 0) //para criar o arquivo apenas se o resultado for diferente de zero

e depois utilizo while((linhas =mysql_fecth_row(resp))) //lupe para buscar todos os resultados daquela query

só que quando faço esse lupe não vem nenhum resultado

 

Se eu tirar a condição if (mysql_fecth_row(resp) != 0)

e deixar apenas o while vem todos os resultados....

 

Alguem tem alguma solução???

 

Vou colocar abaixo a parte do codigo...


mysql_init(&conexao);
     if (mysql_real_connect(&conexao,"localhost","root","","db_graficos",0,NULL,0))
       {
          printf("Conectado com Sucesso!\n");
           if (mysql_query(&conexao,query))
            printf("Erro: %s\n",mysql_error(&conexao));

             else
              {
               resp = mysql_store_result(&conexao);//recebe a consulta

     //             if (resp != 0) //se houver consulta
        if(mysql_fetch_row(resp) != 0)

                    {  //fprintf(arquivo,"%s[]={");


                                                  FILE *arquivo1 ;
                           arquivo1= fopen(nome, "w+");
                          // testa se o arquivo foi aberto com sucesso
                           if(arquivo1 != NULL)
                           printf("Arquivo criado com sucesso.");
                           else
                           printf("Nao foi possivel criar o arquivo.");
                           {
                                fprintf(arquivo1,"<html>\n");
                                fprintf(arquivo1,"<head>\n");
                             fprintf(arquivo1,"<title>Visão Ano</title>\n");
                             	 fprintf(arquivo1,"<script language=\"JavaScript\" src=\"grafico/FusionCharts.js\"></script>\n");
                          //      fprintf(arquivo1,"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n");
                                fprintf(arquivo1,"<link type=\"text/css\" href=\"organizacao_tela.css\" rel=\"stylesheet\" /> \n");
                                fprintf(arquivo1,"<?php session_start(\"grafico\"); \n ");
                                fprintf(arquivo1," include(\"menu.php\"); \n");
                                fprintf(arquivo1,"include(\"grafico/FusionCharts.php\"); ?>\n");
                                fprintf(arquivo1,"</head><body>\n");
                                fprintf(arquivo1,"<?php \n");



                           FILE *arquivo ;
                           arquivo= fopen(nomexml, "w+");
                          // testa se o arquivo foi aberto com sucesso
                           if(arquivo != NULL)
                           printf("Arquivo criado com sucesso.");
                           else
                           printf("Nao foi possivel criar o arquivo.");
                           {   fprintf(arquivo,"<graph caption=\"Total de Quantidade\" subcaption=\"Vendida no %s\" xAxisName=\"Mes\" yAxisName=\"Quantidade\" numberPrefix=\"\">  \n",title);                        

                                               int contador=0;
                                                            while ((linhas=mysql_fetch_row(resp)) )
                                                            {  





                                                                {  fprintf(arquivo,"<set");                                                                  
                                                                   fprintf (arquivo," name=\"%s\" ",linhas[0]);
                                                                   fprintf (arquivo," value=\"%s\" ",linhas[1]);
                                                                   fprintf (arquivo," value2=\"%s\" ",linhas[2]);
                                                                   fprintf (arquivo," color=\"%s\" ",cor[f]);
                                                                   fprintf (arquivo," link=\"ano_%s_mes_%s_produto.php\" ",ano[0],mes[b]);
                                                                   fprintf(arquivo1," $arrData[%d][1] = \" %s\"; ",contador,linhas[0]);
                                                                   fprintf(arquivo1," $arrData[%d][2] = \" %s\"; ",contador,linhas[1]);
                                                                   fprintf(arquivo1," $arrData[%d][3] = \"%s_canal_%s_p_venda5.php\"; ",contador,link,linhas[0]);
                                                                   fprintf(arquivo1," $arrData[%d][4] = \" %s\"; ",contador,linhas[2]);
                                                                   f++;c++;b++;contador++;
                                                                 }


 

Att, Fabio Rosa

 

Não sei pq o forum estabeleceu meu tópico como resolvido

pq os resultados estão vindo vazios

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,

Eu conseguir fazer o que eu queria...

Só li a primeira linha, vo editar o título para tirar o [Resolvido]

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei sim a dica dele...

Conseguir colocar a condição....

mais quando há dados e vou imprimir não vem nenhum dado

fica tudo vazio...

Assim pelo o que eu vi não posso colocar mais de um "mysql_fetch_row(resp)"

Porque quando vou utilizar novamente ele não pega os valores da consulta novamente...

 

Alguem tem alguma alternativa??

 

Explicando o que eu quero fazer...

Antes de colocar "mysql_fetch_row(resp)" eu quero ver se a consulta está vazia

caso esteja eu quero que ele não entre no while para imprimir o resultado 0(zero).

 

Att, Fabio Rosa

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.