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
¿Qué error da?
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