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

Blogalaxia Tags:

4 Comments so far

  1. vladimir prieto on Noviembre 30th, 2007

    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!

  2. ErickHuezo on Noviembre 30th, 2007

    jojojo si verdad :P grax.
    lo reviso y arreglo.

  3. -.- on Mayo 30th, 2008

    te falto seleccionar la base de datos

  4. ErickHuezo on Mayo 30th, 2008

    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.

Leave a reply