Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: yoelmend en 6 Junio 2017, 06:34 am



Título: ciclo con mysql c
Publicado por: yoelmend en 6 Junio 2017, 06:34 am
tengo esta funcion (un bucle infinito)
el error que tiene es que cuando el usuario no existe perfectamente se repite el ciclo pero cuando el usuario si existe imprime da un error y se sale del ciclo y termina el programa, alguien sabe por que sucede esto?
Código
  1. void rfidsc()
  2. {
  3.       char consulta1[1024];
  4.       char pin[45];
  5.       int var;
  6.        do {
  7.        var = 1;
  8.        scanf("%s",pin);
  9.  
  10.        sprintf(consulta1,"select nombre,apellido from Usuario where pin = '%s'",pin);
  11.        mysql_query(con,consulta1); //Establecemos la conexion y enviamos la consulta a MySQL. q tiene almacenada nuestra consulta.
  12.        res = mysql_use_result(con);
  13.        row = mysql_fetch_row(res);
  14.        int num = mysql_num_rows(res);
  15.  
  16.        if (num==1){
  17.            fprintf(stdout, "------Bienvenido: %s %s \n",row[0],row[1]);
  18.          //////////  var ++; for (i=0;i>=0;i++)
  19.         /// mysql_close(con);
  20.         num = 0;
  21.  
  22.         var++;
  23.       }else{
  24.       fprintf(stdout, "usuario no existe\n");
  25.       var ++;
  26.      //// mysql_close(con);
  27.       }
  28.  
  29.        } while (var != 0);
  30.  
  31. }
  32.  
Al publicar codigo usa etiquetas GeSHi


Título: Re: ciclo con mysql c
Publicado por: MAFUS en 7 Junio 2017, 13:53 pm
¿Qué error da?


Título: Re: ciclo con mysql c
Publicado por: engel lex en 7 Junio 2017, 14:24 pm
no he usado dicha extensión de C, pero si funciona igual que la de otros lenguajes el do repite la consulta por lo que mysql_fetch_row te traerá la primera columna siempre... la consulta debe estar fuera del ciclo, el mysql_fetch_row es el que requiere el ciclo