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