Exportar a CSV en PHP
Tengo un formulario de concultas, en el cual le pido entre otras cosas el Nombre y el Mail a la gente pues todos los campos son guardados en una base de datos, ahora bien quiero sacar solo el nombre y el mail en un archivo CSV para que pueda ser habierto ya sea por Microsoft Excel u OpenOffice calc.
he aqui el poderoso Scrip de 12 lineas que hacen el truco
//se prepara la coneccion para la base de datos
$host = 'localhost';
$usuario = 'root';
$password = '';
$db=mysql_connect($host,$usuario,$password);
//aqui se saca la informacion y la separamos por coma
$sacar=mysql_query("select * from prueba.correo", $db);
while ($reg = mysql_fetch_array($sacar))
{$shtml = $shtml.$reg["Nombre"].",".$reg["Mail"]."\n";}
//aqui le decimos al navegador que vamos a mandar un archivo del tipo CSV
Header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=pedidos.csv");
echo $shtml;
explico brevemente el asunto:
El escript es dividide en 3 partes:
1.- La coneccion a la base de datos de donde voy a extraer la informacion de aqui destaco que:
$host = aqui estara la direccion del servidor MySQL por default “localhost”.
$usuario = Pues el usuario que tiene permisos para la base de datos
$password = el password que acompaña al $usuario.
$db = Pues establece una conexión a un servidor MySQL junto con los otros datos.
2.- Pues aqui pedimos la informacion a la tabla que deseamos en este caso “prueba.correo” luego con la ayuda del While haremos un bucle para ordenar todos los datos extraidos de la tabla. separandolos con comas(,) y dandole un salto de linea con (\n)
3.- Ahora que ya esta ordenado como lo necesitamos le decimos al navegador que lo que estamos enviando es un archivo .csv y listo ahi esta ya el archivo con los datos.
eso estuvo facil claro que habria que darle seguridad para que no cualquiera pueda sacarlo pero eso es otro pisto. u otro post ![]()

simple pero funcional, me gustó. sólo unos detallitos:
- el “{” del while faltó cerrarlo.
- el “\n” sale sin el back-slash.
eso por ahora…saludos!
jojojo si verdad :P grax.
lo reviso y arreglo.
te falto seleccionar la base de datos
Pues si tengo selecionada la base de datos.
$sacar=mysql_query(”select * from prueba.correo”, $db);
es ahi donde esta la Base de datos prueba y la tabla es correo.
Por lo menos a mi asi me resulta.