Fijate bien ..
Si actualmente sabes hacer una consulta SQL a tu BD . .y obtienes los datos y los muestras en formato HTML usando tus tag de tablas y demás .. ahora lo que requieres es generar ese archivo (sea al disco de tu servidor para luego ofrecer un link de descarga o directamente generar ese archivo y ofrecerlo para descargar en el mismo proceso).
Si ahora haces para presentar tus datos en HTML algo tipo:
Código PHP:
while ($row=mysql_fetch_array($consulta)){
echo "<b>".$row['campo']."<b><br>";
echo "<b>".$row['campo2']."<b><br>";
}
donde .. le das formato y usas el código HTML que necesitas para presentarlo de la forma que gustas ..
Para un archivo de texto plano .. el "separador de línea" es el código:
\n
(o \r o \r\n según S.O. .. )
así que sólo tienes que componer tus "registros" separados por el salto de línea y tus campos por comas:
Código PHP:
$linea_txt='';
while ($row=mysql_fetch_array($consulta)){
$linea_txt .= $row['campo'].",".$row['campo2']."\n";
}
Todo ello concatenado sobre una variable para posteriromente poder abir el archivo que vamos a guardar esos datos o entregarlo a descargar si corresponde directamente.
Usando las funciones fopen() y fwrite() .. sólo tieens que hacer el fwrite(...,$lineas_txt);
(o compones las cabeceras HTTP con header() adecuadas para entregar el archivo generado, mejor dicho los datos de esa variable con ese formato al navegador para su descarga ).
Un saludo,