Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal alguem pode me ajudar preciso fazer uma busca entre datas podem me ajudar ?
O "between" citado pelo rodrigo badaro é da SQL. Será útil se for buscar intervalos de datas no banco de dados.
Explique melhor o que deseja fazer
Beraldo meu rei uma consulta de datas tenho vários clientes cadastrados no mes 12/2014 e 01/2015
dai eu la no input da data eu informo de 01/01/2014 á 31/12/2014 me tras todos cadastrados nessa data entendeu ?
SELECT * FROM clientes WHERE (datacadastro BETWEEN '2014-01-01' AND '2014-12-31')
>
Beraldo meu rei uma consulta de datas tenho vários clientes cadastrados no mes 12/2014 e 01/2015
dai eu la no input da data eu informo de 01/01/2014 á 31/12/2014 me tras todos cadastrados nessa data entendeu ?
Use o exemplo do Maykel-ctba. Apenas lembrando que seu campo deve ser do tipo DATE ou DATETIME, com as datas no formato YYYY-MM-DD em vez de DD/MM/YYYY. Se precisar converter entre formatos de datas, use as funções de data e hora do SGBD ou a classe DateTime do PHP
Maykel vamos lá, esse é meu formulário :
<form method="post" action="#">
<label>Data</label>
<input type="date" id="geral_input2" name="" required>
<label>Até</label>
<input type="date" id="geral_input2" name="" required>
<input type="submit" class="btn" name="acao" id="button" value="Buscar" />
</form>
Meu select:
<?php
if (isset($_POST['acao']) && $_POST['acao'] == 'busca') {
$pesquisa = $_POST['busca'];
$sql = mysql_query("SELECT * FROM tb_pagamento WHERE cl_data_pgto like '%$pesquisa%' ");
while ($ress = mysql_fetch_assoc($sql)) {
$cl_data_pgto = $ress['cl_data_pgto '];
echo "<td>" . $cl_data_pgto . "</td>";
?>
<?php
}
}
?>
O que mais esta faltando amigos ?
Está faltando tudo o que falamos acima B)
Primeiro de tudo, coloque um atributo NAME em cada campo de data. Por exemplo, txDataInicio e txDataFim.
Depois, na consulta, adicione as condições que te passamos nos outros posts acima, e aonde tem as datas, você coloca o $_POST['txDataInicio'] e $_POST['txDataFim']
+ - assim :
<form class="form">
<input id="geral" type="date" name="cl_data_inicio" required>
<input id="geral" type="date" name="cl_data_fim" required>
<button type="submit" name="acao" class="btn">Busca</button>
</form>
<?php
if (isset($_POST['acao']) && $_POST['acao'] == 'cl_data_inicio') {
$cl_data_inicio = $_POST['cl_data_inicio'];
$cl_data_fim = $_POST['cl_data_fim'];
$sql = mysql_query("SELECT * FROM tb_pagamento WHERE cl_data_pgto between $cl_data_inicio and $cl_data_fim ");
while ($ress = mysql_fetch_assoc($sql)) {
$cl_data_pgto = $ress['cl_data_pgto '];
echo "<td>" . $cl_data_pgto . "</td>";
?>
<?php
}
}
?>
BD (nao esta populado ainda):
Deu certo?
Deu nao amigo esta passando via url e nao mostra nada :
http://localhost/a.swebnet/home.php?cl_data_inicio=2014-12-01&cl_data_fim=2015-01-13&acao=
O form não está configurado o method.
Configure o method do form para POST ;-)
Outra coisa, $_POST['acao'] não existe. Ele não é um input, e sim um button, ou seja, essa verificação que você faz com o $POST['acao'] não vai adiantar nada, até onde sei.
:(
Pesquise sobre php between