Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rica mourao

Filtrando registro no mysql para gerar .xls

Recommended Posts

Olá pessoal boa tarde,

 

Tenho um script que pesquisei no google que exporta os dados de uma tabela no mysql para o formato .xls do excel.

 

O script funciona que é uma beleza, porém estou querendo que o script crie apenas mostre os registros com status diferente de concluido (contéudo da tabela status).

 

Como eu faço isso?

 

tem como filtrar no select apenas os registros que possuem o status diferente de concluido?

 

Se alguém puder me ajudar eu agradeço.

 

<?php

 

 

//Conexão ao Banco de dados local

$conexao = mysql_connect("localhost","ricardo","teste");

$db = mysql_select_db("flash");

 

 

//consulta sql

$SQL = "SELECT `so`, `inputdate`,`customer`, `po` , `price` , `status` , `issue` , `responsible` , `enddate` FROM `producao` " ;

$executa = mysql_query($SQL);

 

// definimos o tipo de arquivo

header("Content-type: application/msexcel");

 

// Como será gravado o arquivo

header("Content-Disposition: attachment; filename=report_flash.xls");

 

// montando a tabela

echo "<table>";

echo "<tr>";

echo "<td bgcolor=#336699><font color=#FFFFFF>SO</font></td>";

echo "<td bgcolor=#336699><font color=#FFFFFF>Input Date</font></td>";

echo "<td bgcolor=#336699><font color=#FFFFFF>Customer</font></td>";

echo "<td bgcolor=#336699><font color=#FFFFFF>PO</td>";

echo "<td bgcolor=#336699><font color=#FFFFFF>Price</td>";

echo "<td bgcolor=#FFFF99>Status</td>";

echo "<td bgcolor=#FFFF99>Issue Description</td>";

 

echo "<td bgcolor=#FFFF99>Responsible</td>";

 

echo "<td bgcolor=#FFFF99>End Date</td>";

 

echo "</tr>";

$i=1;

while ($rs = mysql_fetch_array($executa)){

echo "<tr>";

echo "<td>" . $rs["so"] . "</td>";

echo "<td>" . $rs["inputdate"] . "</td>";

echo "<td>" . $rs["customer"] . "</td>";

echo "<td>" . $rs["po"] . "</td>";

echo "<td>" . $rs["price"] . "</td>";

echo "<td>" . $rs["status"] . "</td>";

echo "<td>" . $rs["issue"] . "</td>";

echo "<td>" . $rs["responsible"] . "</td>";

echo "<td>" . $rs["enddate"] . "</td>";

 

 

echo "</tr>";

$i++;

}

echo "</table>";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

rica mourao, você qer filtrar dados por um campo? Se sua resposta for sim você tem que utilizar na clausula WHERE do seu SQL os filtros. Exemplo:

$SQL = "SELECT `so`, `inputdate`,`customer`, `po` , `price` , `status` , `issue` , `responsible` , `enddate` 
       FROM `producao` 
       WHERE status != 1 ";

No exemplo acima eu menciono o seu SQL e coloco o filtro no WHERE para pegar só os campos com onde a coluna status tenha valor diferente de 1. Veja se isso lhe ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei assim:

 

$SQL = "SELECT `so`, `inputdate`,`customer`, `po` , `price` , `status` , `issue` , `responsible` , `enddate`

 

FROM `producao`

 

WHERE status != Concluded ";

 

Retornou esse erro dentro do xls.

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in \exportar.php on line 42.

 

A linha 42 possui o seguinte código:

 

while ($rs = mysql_fetch_array($executa)){

 

Será que a instrução do select que está voltando com erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

rica mourao, isso deve ser pq sua consulta n retornou nenhum dado, deve ser pq no WHERE você n colocou corretamente, seria:

WHERE status != 'Concluded' ";

Veja ai e me fale.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo agora Wess, a sintaxe usei foi:

 

FROM producao WHERE responsible != 'Concluded' ";

Então era isso mesmo que faltava. Faz só um favor coloque este como RESOLVIDO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.