Función mysql_fetch_row()
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);
Recupera la siguiente fila de un conjunto de resultados. Cuando se usa después de mysql_store_result, mysql_fetch_row devuelve NULL si no quedan más filas por recuperar. Cuando se usa después de mysql_use_result, mysql_fetch_row devuelve NULL si no quedan filas por recuperar o si se ha producido un error.
El número de valores en la fila viene dado por mysql_num_fields(result). Si la fila contiene el valor devuelto por una llamada a mysql_fetch_row, los punteros a los valores serán accesibles como row[0] a row[mysql_num_fields(result)-1]. Los valores NULL en la fila se indican mediante punteros nulos.
Las longitudes de los valores de los campos en la fila se pueden obtener mediante una llamada a la función mysql_fetch_lengths. Los campos vacíos y los que contengan NULL tendrán longitud 0; se pueden distinguir comprobando el puntero para el valor del campo. Si el puntero es NULL, el campo es NULL; en otro caso, el campo estará vacío.
Valores de retorno
Una estructura MYSQL_ROW para la siguiente fila. NULL si no hay más filas para recuperar o si se ha producido un error.
Errores
Los errores no se resetean entre sucesivas llamadas a mysql_fetch_row.
CR_SERVER_LOST: la conexión con el servidor se perdió durante la consulta.
CR_UNKNOWN_ERROR: ha ocurrido un error desconocido.
Ejemplo
MYSQL_ROW row; unsigned int num_fields; unsigned int i; num_fields = mysql_num_fields(result); while ((row = mysql_fetch_row(result))) { unsigned long *lengths; lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL"); } printf("\n"); }