Publicidade   
 você está aqui: phpbrasil.com    artigos    artigo  
 
:: novos artigos ::

:: recomendado ::

Fundamentos de PHP

Compre esse livro no Submarino.com.br

:: publicidade ::


:: novos scripts ::

:: elenco phpbrasil ::

rafaelgh2005
Pontos: 3092

Visite a página de perfil de sbc.mfreitasGerando Arquivos CSV via MySQL
por sbc.mfreitas
Lista de Categorias  |  Contribua um Novo Artigo  |  Entre em Contato Conosco

Após algumas pesquisas na documentação do MySQL e a necessidade de exportar arquivos de dados em CSV, criei um comando em SQL para gerar esse tipo de informação, um script em PHP para ler o arquivo CSV e apresentá-lo de uma forma organizada numa tabela com a função fgetcsv.
Vote aqui!
Média de Votos Atual: 9.65
Total de Votos: 275
Nota:   

Função fgetcsv()

Descrição da função:

array fgetcsv ( nome_do_arquivo, tamanho [, string delimiter [, string enclosure]])


A sintaxe do comando SQL para criar o arquivo CSV é:


<?php
$path 
"c:/apache/dados_csv/arquivo.csv";
$tabela "nome_da_tabela";

$sql_csv "SELECT * INTO OUTFILE '$path' FIELDS TERMINATED BY ';' ENCLOSED BY '' LINES TERMINATED BY '\r\n' FROM $tabela";

Caso você tente sobre-escrever o arquivo irá causar um erromas para isso você pode utilizar uma rotina com a função file_exists($pathpara liberar a gravação do arquivo.

<
cores_xml>
<?
php
if (file_exists($path)) {
    echo 
"Arquivo já existe";
} else {
    
// script sql vai aqui...
}
?>


Para ler os arquivos gerados utilizei a função fgetcsv() conforme o script abaixo:


<?php
$filename 
"c:/apache/dados_csv/arquivo.csv";

$fp fopen($filename"r");
while (
$data fgetcsv($fpfilesize($filename), ";")) {
    
$table[] = $data;
}
fclose($fp);

// imprime uma tabelinha com esses dados do arquivo csv
echo "<table width=\"1000\" border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n";
foreach (
$table as $row) {
    echo 
"<tr>";
    foreach(
$row as $data) {
       echo 
"<td>$data</td>";
    }
    echo 
"</tr>\n";
}
echo 
"</table>\n";
?>





<< Anterior 1 2 Próxima >>

 
Imprimir  |  Enviar para um Amigo


Comentários de Usuários

Loko
publicado por Leandro Maniezo - 2004-07-23 06:22:30

Nossa cara show de bola... não imaginava que o mysql era capaz de criar um arquivo assim, tenho um sistema de noticias que é um flash que le um txt com issovai me facilitar muito...

Valew!!!

Interessante
publicado por Rafael Ferreira Silva - 2004-07-23 13:06:25

Interessante a abordagem.
Há pucos dias estava precisando de um script pra fazer isso, mas pra agilizar peguei uma classe pronta no phpclasses que usa uma abordagem diferente.

Em todo caso valeu conhecer novas abordagens.

Dúvida
publicado por Leandro Maniezo - 2004-07-28 08:22:07

Tem que ter alguma permissão de servidor ou algo do tipo?? Tentei num host que esta na locaweb... não deu erro mas tmb não criou nenhum arquivo...

Re: Dúvida
publicado por Bruno Canongia - 2004-07-29 08:17:27

Se não me engano tem que dar permissão de read/write. Portanto nada de colocar no diretório principal. hehehe

humm, conceito errado.
publicado por Thomas Gonzalez Miranda - 2004-09-29 08:24:46

Eu não estou desaprovando o artigo, mas CSV não é Comma Separate Values? Porque você está separando com ';' ?

Re: humm, conceito errado.
publicado por sbc.mfreitas - 2004-09-29 15:55:55

Bem, CSV é isso mesmo Thomas, Valores Séparados Por Vírgula, e não ";" mas de certa forma tive problemas, trabalho em uma empresa onde meu setor tem aproximadamente 200 Pcs, utilizando a vígula com alguns softwares do Excel no mesmo sistema operacional e a mesma versão,notei que em alguns a virgula funcionava bem mas outros não, ai tentei utilizar o ";" e percebi que tinha resolvido, também não tive problemas em utilizar com a função fgetcsv(), pois foi apenas alterar o valor de separação!, mas o porque do erro no excel ainda desconheço, deve ser alguma configuração mas seria trabalhoso em muitos micros!

blz? Coisas do Ruindows! Rsss!

Marcos Roberto de Freitas

Noticia em site em flash
publicado por Piu2005 - 2005-08-23 18:05:49

Preciso incluir um sistema de noticias em um site em flash mas sou iniciante alguem poderia me dar umas dicas de como fazer isso.
É muito importante pra mim.

Show
publicado por Eris - 2007-12-27 18:22:08

Ficou muito bom e Prático!! Parabéns...

Publique os seus Comentários

Nome:
Email:
Título:
Comentário:

NOTA: Cadastre-se no site para poder publicar comentários.

 
webmaster: João Prado Maia   © 2000 - 2005 phpbrasil.com
Gerado em 2.581 segundos