Jump to content
matheusmarson

problema ao gerar csv com php

Recommended Posts

Olá a todos

 

Estou com um problema para gerar um arquivo csv com o php

O arquivo até que é gerado, mas as colunas do arquivo que é gerado não são separadas, ou seja os dados da colunas do BD são exportadas de forma concatenada para a primeira coluna do arquivo csv

Alguém já teve este problema

Preciso que cada coluna do BD seja exportada para sua respectiva coluna no csv

Ex: tenho no bd as colunas id, nome, email

No csv gerado quero que elas sejam também criadas

 

E oque esta acontecendo é que os dados destas 3 colunas ficam concatenados na coluna 1 do csv

Meu código

require_once('../connections/guver.php');

	$filename = "lista.csv";
	$fp = fopen('php://output', 'w');

	$query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='{$database_guver}' AND TABLE_NAME='mail_list'";
	$result = mysql_query($query);
	while ($row = mysql_fetch_row($result)) {
		$header[] = $row[0];
	}	
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
	header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
	header("Cache-Control: no-cache, must-revalidate");
	header("Pragma: no-cache");
	header("Content-type: text/comma-separated-values");
	header("Content-Disposition: attachment; filename={$filename}");
	
	fputcsv($fp, $header);
	
	$num_column = count($header);		
	$query = "SELECT * FROM mail_list ORDER BY data_cad DESC";
	$result = mysql_query($query);
	while($row = mysql_fetch_row($result)) {
		fputcsv($fp, $row);
	}
	exit;

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By granderodeo
      Tenho o seguinte código, onde ele valida o login do usuário e pega os dados dele para serem usados futuramente
       
      session_start(); include_once("config/conexao_fornec.php"); if (isset($_POST['enviar'])) { if (!empty($_POST['login']) || !empty($_POST['senha'])) { $login=$_POST['login']; $senha=MD5($_POST['senha']); $comando="SELECT *, usuarios.id_usuario as id_usuario FROM usuarios LEFT JOIN orders ON usuarios.id_usuario = orders.id_usuario WHERE usuarios.email='$login' and usuarios.senha='$senha'"; $enviar=mysqli_query($conn, $comando); $resultado = mysqli_fetch_assoc($enviar); if ($resultado) { $_SESSION['id_usuario'] = $resultado['id_usuario']; $_SESSION['order_date']=$resultado['order_date']; $_SESSION['order_name']=$resultado['order_name']; $_SESSION['order_endereco']=$resultado['order_endereco']; $_SESSION['order_numero']=$resultado['order_numero']; $_SESSION['order_referencia']=$resultado['order_referencia']; $_SESSION['order_id']=$resultado['order_id']; $_SESSION['login']=$resultado['login']; $_SESSION['senha']=$resultado['senha']; $_SESSION['email']=$resultado['email']; $_SESSION['nome']=$resultado['nome']; $_SESSION['seguranca']=$resultado['seguranca']; echo "<script>window.location='../';window.alert('Login efetuado com sucesso!');</script>"; exit; Tenho o seguinte código, onde ele valida o login do usuário e pega os dados dele para serem usados futuramente
       
      session_start(); include_once("config/conexao_fornec.php"); if (isset($_POST['enviar'])) { if (!empty($_POST['login']) || !empty($_POST['senha'])) { $login=$_POST['login']; $senha=MD5($_POST['senha']); $comando="SELECT *, usuarios.id_usuario as id_usuario FROM usuarios LEFT JOIN orders ON usuarios.id_usuario = orders.id_usuario WHERE usuarios.email='$login' and usuarios.senha='$senha'"; $enviar=mysqli_query($conn, $comando); $resultado = mysqli_fetch_assoc($enviar); if ($resultado) { $_SESSION['id_usuario'] = $resultado['id_usuario']; $_SESSION['order_date']=$resultado['order_date']; $_SESSION['order_name']=$resultado['order_name']; $_SESSION['order_endereco']=$resultado['order_endereco']; $_SESSION['order_numero']=$resultado['order_numero']; $_SESSION['order_referencia']=$resultado['order_referencia']; $_SESSION['order_id']=$resultado['order_id']; $_SESSION['login']=$resultado['login']; $_SESSION['senha']=$resultado['senha']; $_SESSION['email']=$resultado['email']; $_SESSION['nome']=$resultado['nome']; $_SESSION['seguranca']=$resultado['seguranca']; echo "<script>window.location='../';window.alert('Login efetuado com sucesso!');</script>"; exit;  Executar Expandir trecho de código  
      Futuramente vou fazer outra query para pegar os pedidos do usuário que está logado, e simplesmente não consigo por
      SELECT * FROM orders LEFT JOIN usuarios ON orders.id_usuario = usuarios.id_usuario WHERE usuarios.id='$_SESSION['id_usuario']' Ele dá erro no $_SESSION['id_usuario'], então pensei em fazer assim, na validação onde pego os dados do usuário colocar dentro de uma váriavel, exemplo:
      $resultado['id_usuario'] = $session_user; OU (não sei se é possível) $_SESSION['id_usuario'].$resultado['id_usuario'] = $session_user; O importante é fazer uma variavel que eu possa utilizar na hora da query. Na página onde faço outra query para assim pegar os pedidos do usuário da SESSÃO está da seguinte forma.
      <?php require '../config/conexao_fornec.php'; $comando="SELECT * FROM orders LEFT JOIN usuarios ON orders.id_usuario = usuarios.id_usuario"; $result=$conn->query($comando); $result = mysqli_query($conn, $comando); if ($result): while ($row = mysqli_fetch_assoc($result)): ?> <tr> <th scope="row"><?= $row['order_id'] ?></th> <td><?= $row['order_date'] ?></td> <td><?= $row['order_name'] ?></td> <td><?= $row['order_endereco'] ?></td> <td><?= $row['order_numero'] ?></td> <td><?= $row['order_referencia'] ?></td> </tr> <?php endwhile; endif; ?>  
    • By peterstefan
      Boa tarde, estou recebendo os valores de um foreach como segue na imagem, porem nao estou conseguindo somar os resultados e dar um valor total, gostaria de saber como eu posso fazer essa soma....

      https://www.imagemhost.com.br/image/gTXVK
    • By victor.dsz
      Como checar se um usuário estar logado antes que ele entre em cada página.
    • By granderodeo
      Estou tentando pegar dados de duas tabelas logo no inicio da sessão quando o usuário realiza o login, quando utilizo o 
      SELECT * FROM usuarios, orders WHERE email = '$login' and senha= '$senha' Consigo realizar o login tranquilamente, até ai de boa, mais quando modifico o código para
       
      $comando="SELECT * FROM usuarios INNER JOIN orders ON usuarios.id_usuario = orders.id_usuario WHERE email.usuarios='$login' and senha.usuarios='$senha'"; Ele só me deixa fazer login se o usuário já tiver algum orders (pedido). O que estou tentando fazer é assim que o usuário loga, mostre também os pedidos que ele já fez etc, que são dados que estão em outra tabela. Alguém consegue ver meu erro?
    • By Fernando Rafael
      Estou tendo problemas com a leitura de porta serial com PHP, consigo facilmente escrever na mesma, mas sempre que no comando de abertura da porta eu coloco que haverá permissão de leitura o PHP trava e fica carregando infinitamente, e a porta fica bloqueada e só libera quando reiniciado o computador.
       
      Segue o cod:
      exec('MODE COM1:9600,n,8,1'); //seta configuração na porta COM $fp=fopen("COM1","r+b"); if(!$fp) {     echo("Erro ao abrir a porta com1");     exit; } else {         echo("COM1 aberta <br>"); } fwrite($fp,Chr(5));  //escrevendo valor na porta sleep(1); //pausa para retorno dos dados echo (fgets($fp)); fclose($fp); já tentei  colocar:
      fopen("COM1", "r+b");
      fopen("COM1", "r+t");
      fopen("COM1", "r");
      fopen("COM1", "w+");
      fopen("COM1", "r+");
       
      para escrever consigo normal, com o fopen("COM1", "w");.  mas já para ler.....
       
      Notei que na internet tem muito sobre esse problema, inclusive falaram em permissões de usuário, sendo que nos casos em que conseguiram, estavam usando o Linux.
      Eu estou usando o W7 e W10 com PHP 5.2, se for o caso de permissões, como resolvo isso? preciso configurar mais alguma coisa no php.ini?
       
      Também já tentei usar uma classe: phpSerial
       
      Mas retorna o seguinte erro:
      Warning: Reading serial port is not implemented for Windows in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\balanca\php_serial.class.php on line 503
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.