ciclo con mysql c

Iniciado por yoelmend, 6 Junio 2017, 06:34 AM

0 Miembros y 1 Visitante están viendo este tema.

yoelmend

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?
void rfidsc()
{
      char consulta1[1024];
      char pin[45];
      int var;
       do {
       var = 1;
       scanf("%s",pin);

       sprintf(consulta1,"select nombre,apellido from Usuario where pin = '%s'",pin);
       mysql_query(con,consulta1); //Establecemos la conexion y enviamos la consulta a MySQL. q tiene almacenada nuestra consulta.
       res = mysql_use_result(con);
       row = mysql_fetch_row(res);
       int num = mysql_num_rows(res);

       if (num==1){
           fprintf(stdout, "------Bienvenido: %s %s \n",row[0],row[1]);
         //////////  var ++; for (i=0;i>=0;i++)
        /// mysql_close(con);
        num = 0;

        var++;
      }else{
      fprintf(stdout, "usuario no existe\n");
      var ++;
     //// mysql_close(con);
      }

       } while (var != 0);

}

Al publicar codigo usa etiquetas GeSHi

MAFUS


engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.