Pesquisa de dados em um intervalo de datas pelo MySQL
Passo 01 - Criar o banco de dados "pessoas" e a tabela "dados"
Banco de dados: pessoas
tabela: dados
Abaixo segue o script para gerar a tabela dados:
Pronto! agora já temos o banco e a tabela criado, podemos partir para o passo 2 onde iremos criar nosso formulário de pesquisa.
Passo 02 - usando um editor de texto comun como o Bloco de Notas do windows, copie o código a seguir e salve o arquivo como index.php.
Passo 03 - Aqui vamos criar a página onde vai pegar os dados dentro do intervalo das datas inseridas no formulario da poagina index.php e gerar os resultados encontrados em um arquivo .xls (excel).
Copie o código a seguir e cole no Bloco de Notas salvando o arquivo com o nome de gerar.php:
Banco de dados: pessoas
tabela: dados
Abaixo segue o script para gerar a tabela dados:
CREATE TABLE IF NOT EXISTS `dados` ( `id` int(10) NOT NULL auto_increment, `data` date NOT NULL, `ativo` varchar(1) NOT NULL default '0', `nome` varchar(40) NOT NULL, `email` varchar(90) NOT NULL, `cpf` varchar(150) NOT NULL, PRIMARY KEY (`id`) );
Pronto! agora já temos o banco e a tabela criado, podemos partir para o passo 2 onde iremos criar nosso formulário de pesquisa.
Passo 02 - usando um editor de texto comun como o Bloco de Notas do windows, copie o código a seguir e salve o arquivo como index.php.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" lang="pt-PT" /> <title>Untitled Document</title> </head> <!-- a seguir coloquei uma função para formatar os campos das datas //--> <script language="JavaScript"> <!-- function FormataDados (param, mascara) { vr = param.value; vm = mascara; vr = stripChars( vr, "/-.,() " ); vm = stripChars( vm, "/-.,()" ); tam = vr.length; if (tam > vm.length) { vr = vr.substring(0, vm.length); tam = vr.length; } temp = ""; for (i = mascara.length; i >= 0; i--) { if (mascara.substring(i, i+1) != " ") { temp += mascara.substring(i, i+1); } else { if (tam > 0) { temp += vr.substring(tam-1, tam); tam--; } else { temp += " "; } } } result = ""; for (i = mascara.length; i >= 0; i--) { result += temp.substring(i, i+1); } param.value = result; return true; } function testa (checkOK , checkStr) { var test = true; var decPoints = 0; var allNum = ""; for (i = 0; i < checkStr.length; i++) { ch = checkStr.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length) { test = false; break; } allNum += ch; } return(test); } function VoltaMask(param,paramExemplo,paramTroca) { if (param.value == paramExemplo) { param.value = paramTroca; } else if (param.value == paramTroca) { param.value = paramExemplo; } return true; } function stripChars (InString, StripThis) { OutString=""; for (Count=0; Count < InString.length; Count++) { TempChar=InString.substring (Count, Count+1); pertencente = false; for (i = 0; i < StripThis.length; i++) { if (TempChar == StripThis.substring(i, i+1)) { pertencente = true; break; } } if (!pertencente) OutString=OutString+TempChar; } return (OutString); } function Valida(frm) { frm.submit(); return true; } self.focus(); //--> </script> <body> <form method="post" action="gerar.php" onsubmit="return Valida(this);"> <label>Nome do relatório<br /> <input name="arquivo" type="text" class="right_contact_textbox" id="arquivo" size="15" style="width:79px;font-size: 11px; font-family: Arial"/> <br /> <br /> Data de Início<br /> <input name="datainicio" type="text" class="right_contact_textbox" maxlength="11" id="datainicio" onblur="VoltaMask(this,' / / ','dd/mm/aaaa');" onkeyup="FormataDados(this, ' / / ')" onfocus="VoltaMask(this,' / / ','dd/mm/aaaa');" size="15" value="dd/mm/aaaa" style="width:79px;font-size: 11px; font-family: Arial"/> <br /> <br /> Data Final<br /> <input name="datafinal" type="text" class="right_contact_textbox" maxlength="11" id="datafinal"onblur="VoltaMask(this,' / / ','dd/mm/aaaa');" onkeyup="FormataDados(this, ' / / ')" onfocus="VoltaMask(this,' / / ','dd/mm/aaaa');" size="15" value="dd/mm/aaaa" style="width:79px;font-size: 11px; font-family: Arial" /> </label> </div> <div class="right_contactbox"></div> <div class="right_contactbox"></div> <div class="right_contactbox"> <p> <input name="btn_enviar" type="submit" class="button" id="btn_enviar" value="Gerar Relatório" /> </p> </div> </div> </form> </body> </html>
Passo 03 - Aqui vamos criar a página onde vai pegar os dados dentro do intervalo das datas inseridas no formulario da poagina index.php e gerar os resultados encontrados em um arquivo .xls (excel).
Copie o código a seguir e cole no Bloco de Notas salvando o arquivo com o nome de gerar.php:
<?php $nome_arquivo = $_POST['arquivo']; // pego nessa variavel o nome que você atribuiu no formulario da pagina index.php para o arquivo a ser gerado .xls - excel // peguei a variavel datainicio vindo do form e transformei ela pra o formato ingles do SQL Y-m-d //a variavel de saida final da data em formato SQL é a $datavencinicio $datainicio = $_POST['datainicio']; $datavencinicio = "$datainicio"; $diavencinicio = substr("$datavencinicio",0,2); $mesvencinicio = substr("$datavencinicio",3,2); $anovencinicio = substr("$datavencinicio",6,4); $datavencinicio = $anovencinicio."-".$mesvencinicio."-".$diavencinicio; // peguei a variavel datafinal vindo do form e transformei ela pra o formato ingles do SQL Y-m-d //a variavel de saida final da data em formato SQL é a $datavencfinal $datafinal = $_POST['datafinal']; $datavencfinal = "$datafinal"; $diavencfinal = substr("$datavencfinal",0,2); $mesvencfinal = substr("$datavencfinal",3,2); $anovencfinal = substr("$datavencfinal",6,4); $datavencfinal = $anovencfinal."-".$mesvencfinal."-".$diavencfinal; //Incluir a classe excelwriter include("excelwriter.inc.php"); //Você pode colocar aqui o nome do arquivo que você deseja salvar. $excel=new ExcelWriter("".$nome_arquivo.""); if ($excel==false) { echo $excel->error; } //Escreve o nome dos campos de uma tabela. Esses vão ser o texto do titulo das colunas no arquivo gerado $myArr = array('ID','NOME','EMAIL', 'CPF', 'STATUS'); $excel->writeLine($myArr); //Seleciona os campos de uma tabela $conn = mysql_connect("localhost", "root", "123") or die ('Não foi possivel conectar ao banco de dados! Erro: ' . mysql_error()); if ($conn) { mysql_select_db("angelo_lefundes", $conn); } $consulta = "select * from dados where data BETWEEN '$datavencinicio' AND '$datavencfinal' order by id"; $resultado = mysql_query($consulta); if ($resultado == true) { while($linha = mysql_fetch_array($resultado)){ $myArr = array($linha['id'],$linha['nome'],$linha['email'],$linha['cpf'],$linha['ativo']); //campos da tabela dados $excel->writeLine($myArr); } } $excel->close(); echo "O relatório foi gerado com sucesso com dados<br>cadastrados de ".$datainicio." até ".$datafinal.".<br> <a href=\"".$nome_arquivo."\">Clique aqui para fazer o download do arquivo</a>"; ?>
Páginas:
1
2