Ir para conteúdo

POWERED BY:

Arquivado

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

Andre Rak

[Resolvido] Busca entre datas!

Recommended Posts

Ola galera!

Estou desenvolvendo um sitema para empresa onde trabalho. Nao tenho muita esperiencia em PHP+Mysql porem consegui muita coisa ja!

Porem agora estou com o trabalho parado a 3 dias pois preciso fazer uma BUSCA entre um determinado periodo!

Seria uma pagina em php com dois campos para ele digitar a data inicial e a data final e um submit para buscar isso em banco, mas não estou conseguindo fazer isso.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type=text/javascript>
documentall = document.all;
/*
* função para formatação de valores monetários retirada de
* http://jonasgalvez.com/br/blog/2003-08/egocentrismo
*/

function formatamoney(c) {
    var t = this; if(c == undefined) c = 2;
    var p, d = (t=t.split("."))[1].substr(0, c);
    for(p = (t=t[0]).length; (p-=3) >= 1;) {
	        t = t.substr(0,p) + "." + t.substr(p);
    }
    return t+"."+d+Array(c+1-d.length).join(0);
}

String.prototype.formatCurrency=formatamoney

function demaskvalue(valor, currency){
/*
* Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as
* casas decimais
*/
var val2 = '';
var strCheck = '0123456789';
var len = valor.length;
	if (len== 0){
		return 0.00;
	}

	if (currency ==true){
		/* Elimina os zeros à esquerda
		* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e
		* val2 contém os caracteres (descontando os zeros à esquerda)
		*/

		for(var i = 0; i < len; i++)
			if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;

		for(; i < len; i++){
			if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
		}

		if(val2.length==0) return "0.00";
		if (val2.length==1)return "0.0" + val2;
		if (val2.length==2)return "0." + val2;

		var parte1 = val2.substring(0,val2.length-2);
		var parte2 = val2.substring(val2.length-2);
		var returnvalue = parte1 + "." + parte2;
		return returnvalue;

	}
	else{
			/* currency é false: retornamos os valores COM os zeros à esquerda,
			* sem considerar os últimos 2 algarismos como casas decimais
			*/
			val3 ="";
			for(var k=0; k < len; k++){
				if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
			}
	return val3;
	}
}

function reais(obj,event){

var whichCode = (window.Event) ? event.which : event.keyCode;
/*
Executa a formatação após o backspace nos navegadores !document.all
*/
if (whichCode == 8 && !documentall) {
/*
Previne a ação padrão nos navegadores
*/
	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	obj.value= demaskvalue(x,true).formatCurrency();
	return false;
}
/*
Executa o Formata Reais e faz o format currency novamente após o backspace
*/
FormataReais(obj,'.',',',event);
} // end reais


function backspace(obj,event){
/*
Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
*/

var whichCode = (window.Event) ? event.which : event.keyCode;
if (whichCode == 8 && documentall) {
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	var y = demaskvalue(x,true).formatCurrency();

	obj.value =""; //necessário para o opera
	obj.value += y;

	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	return false;

	}// end if
}// end backspace

function FormataReais(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;

//if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
if (whichCode == 0 ) return true;
if (whichCode == 9 ) return true; //tecla tab
if (whichCode == 13) return true; //tecla enter
if (whichCode == 16) return true; //shift internet explorer
if (whichCode == 17) return true; //control no internet explorer
if (whichCode == 27 ) return true; //tecla esc
if (whichCode == 34 ) return true; //tecla end
if (whichCode == 35 ) return true;//tecla end
if (whichCode == 36 ) return true; //tecla home

/*
O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
*/

if (e.preventDefault){ //standart browsers
		e.preventDefault()
	}else{ // internet explorer
		e.returnValue = false
}

var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
if (strCheck.indexOf(key) == -1) return false;  // Chave inválida

/*
Concatenamos ao value o keycode de key, se esse for um número
*/
fld.value += key;

var len = fld.value.length;
var bodeaux = demaskvalue(fld.value,true).formatCurrency();
fld.value=bodeaux;

/*
Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
*/
  if (fld.createTextRange) {
    var range = fld.createTextRange();
    range.collapse(false);
    range.select();
  }
  else if (fld.setSelectionRange) {
    fld.focus();
    var length = fld.value.length;
    fld.setSelectionRange(length, length);
  }
  return false;

}
</SCRIPT>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script>

function formatar(src, mask)
{
  var i = src.value.length;
  var saida = mask.substring(0,1);
  var texto = mask.substring(i)
if (texto.substring(0,1) != saida)
  {
        src.value += texto.substring(0,1);
  }
}

</script>
<script language="JavaScript">
<!--
function muda(qual)
{
uCase = qual.value.toUpperCase();
qual.value = uCase;
}
-->
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <table width="100%" border="0">
    <tr>
      <td width="3%"><span class="style13 style13"><img src="Imagens/cadeado.gif" alt="" width="30" height="30" /></span></td>
      <td width="97%"><strong><b><strong>Free Travel Turismo</strong></b> - <b><b><a href="fechar.php">Fechar Janela</a></b></b></strong></td>
    </tr>
    <tr>
      <td> </td>
      <td><table width="482" border="0">
        <tr>
          <td width="177"><span class="style7 style13 style13">Localizar Reservas por periodo:</span></td>
          <td width="19">DE:</td>
          <td width="60"><input name="data1" type="text" id="data1" onkeypress="formatar(this, '##/##/####')" size="10" maxlength="10" /></td>
          <td width="10">Á</td>
          <td width="255"><label>
            <input name="data2" type="text" id="data2" onkeypress="formatar(this, '##/##/####')" size="10" maxlength="10" />
          </label></td>
        </tr>
        <tr>
          <td> </td>
          <td> </td>
          <td> </td>
          <td> </td>
          <td><div align="left"> <span class="style7 style13 style13">
            <input type="submit" name="button" id="button" value="Localizar" />
          </span></div></td>
        </tr>
      </table></td>
    </tr>
  </table>
</form>
</body>
</html>

Quem puder me ajudar,

Desde ja agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

include "conexao.php"; //conexão mysql

 

$busca = $_GET["busca"]; // GET do form

 

if($busca=="OK"){

 

// postando por GET ou POST

 

$datainicio = $_POST["inicio"]; // data inicio do form

$datafim = $_POST["fim"]; // data fim do form

 

//formatar data.... INCIAL

$Data = explode('/',$datainicio);

$NovaDataINI = $Data[2]."-".$Data[1]."-".$Data[0];

//formatar data.... FINAL

$Data1 = explode('/',$datafim);

$NovaDataFim = $Data1[2]."-".$Data1[1]."-".$Data1[0];

 

 

 

$exec = mysql_query("SELECT * FROM tabela WHERE data BETWEEN '$NovaDataINI' AND '$NovaDataFim'") or die("<script>alert('ERRO! Não foi possível conectar ao banco de dados.');location.href='javascript:history.go(-1)';</script>");

$total = mysql_num_rows($exec);

 

while($dados=mysql_fetch_array($exec)) {

// exibindo os dados encontrados

// altere pelos valores resultados que quer exibir e que exista em seu banco de dados

$nome = $dados["nome"];

$data = $dados["data"];

$email = $dados["email"];

 

$result .= "$nome - $email - $data<br>";

}

 

echo "$result<hr><br>Foi encontrado $total resultado(s).";

 

}else{

?>

 

<p>Buscar valores por data: dd/mm/aaaa</p>

<form method="POST" action="?busca=OK"><p>

Data Inicio:  <input type="text" name="inicio" size="17"> - Data Final:

<input type="text" name="fim" size="17">

<input type="submit" value="Buscar" name="B1"></p>

</form>

<?php

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
include "conexao.php"; //conexão mysql

$busca = $_GET["busca"]; // GET do form

if($busca=="OK"){

// postando por GET ou POST

$datainicio = $_POST["inicio"]; // data inicio do form
$datafim = $_POST["fim"]; // data fim do form

//formatar data.... INCIAL
$Data = explode('/',$datainicio);
$NovaDataINI = $Data[2]."-".$Data[1]."-".$Data[0];
//formatar data.... FINAL
$Data1 = explode('/',$datafim);
$NovaDataFim = $Data1[2]."-".$Data1[1]."-".$Data1[0];



$exec = mysql_query("SELECT * FROM tabela WHERE data BETWEEN '$NovaDataINI' AND '$NovaDataFim'") or die("<script>alert('ERRO! Não foi possível conectar ao banco de dados.');location.href='javascript:history.go(-1)';</script>");
$total = mysql_num_rows($exec);

while($dados=mysql_fetch_array($exec)) {
// exibindo os dados encontrados
// altere pelos valores resultados que quer exibir e que exista em seu banco de dados
$nome = $dados["nome"];
$data = $dados["data"];
$email = $dados["email"];

$result .= "$nome - $email - $data<br>";
}

echo "$result<hr><br>Foi encontrado $total resultado(s).";

}else{
?>

<p>Buscar valores por data: dd/mm/aaaa</p>
<form method="POST" action="?busca=OK"><p>
Data Inicio:  <input type="text" name="inicio" size="17"> - Data Final:
<input type="text" name="fim" size="17">
<input type="submit" value="Buscar" name="B1"></p>
</form>
<?php
}
?>

 

 

 

Valew

Maciel

 

Nao vo poder testar agora mais ajudo bastante! Depois posto se deu certo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo! COMO FAÇO PARA O RESULTADO APARECER EM OUTRA PAGINA?

SERIA ESSA PAGINA COM RECORDSET PARA PEGAR OS CAMPOS DA DETERMINADA RESERVA PELO PERIODO SELECIONADO:

 

 

<table width="100%" border="0">

<tr bgcolor="#FFFFCC">

<td class="style16">Reserva N°</td>

<td class="style16">Cliente</td>

<td class="style16">Solicitante</td>

<td class="style16">Categoria</td>

<td class="style16">Check In</td>

<td class="style16">Check Out</td>

</tr>

<?php do { ?>

<tr>

<td class="style19"><?php echo $row_Recordset1['codigo']; ?></a></td>

<td class="style19"><?php echo $row_Recordset1['pax']; ?>  </td>

<td class="style19"><?php echo $row_Recordset1['solicitante']; ?></td>

<td class="style19"><?php echo $row_Recordset1['categoria']; ?>  </td>

<td class="style19"><?php echo $row_Recordset1['check_in']; ?></td>

<td class="style19"><?php echo $row_Recordset1['check_out']; ?></td>

</tr>

<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>

</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora SIM! 100% FUNCIONANDO!

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif :lol: :)

 

FORMULARIO PARA A BUSCA

 

<form id="form1" name="form1" method="post" action="resultado_busca_reserva1.php">
  <table width="100%" border="0">
    <tr>
      <td width="3%"><span class="style13 style13"><img src="Imagens/cadeado.gif" alt="" width="30" height="30" /></span></td>
      <td width="97%"><strong><b><strong>Free Travel Turismo</strong></b> - <b><b><a href="fechar.php">Fechar Janela</a></b></b></strong></td>
    </tr>
    <tr>
      <td> </td>
      <td><table width="482" border="0">
        <tr>
          <td width="177"><span class="style7 style13 style13">Localizar Reservas por periodo:</span></td>
          <td width="19">DE:</td>
          <td width="60"><input name="incio" type="text" id="incio" onkeypress="formatar(this, '##/##/####')" size="10" maxlength="10" /></td>
          <td width="10">Á</td>
          <td width="255"><label>
            <input name="fim" type="text" id="fim" onkeypress="formatar(this, '##/##/####')" size="10" maxlength="10" />
          </label></td>
        </tr>
        <tr>
          <td> </td>
          <td> </td>
          <td> </td>
          <td> </td>
          <td><div align="left"> <span class="style7 style13 style13">
            <input type="submit" name="B1" id="button" value="Localizar" />
          </span></div></td>
        </tr>
      </table></td>
    </tr>
  </table>
</form>
</body>
</html>

RESULTADO

 

<?php
include "config.php"; //conexão mysql

// postando por GET ou POST

$datainicio = $_POST["inicio"]; // data inicio do form
$datafim = $_POST["fim"]; // data fim do form

//formatar data.... INCIAL
$Data = explode('/',$datainicio);
//formatar data.... FINAL
$Data1 = explode('/',$datafim);


$exec = mysql_query("SELECT * FROM reserva WHERE data BETWEEN '$datainicio' AND '$datafim'") or die("<script>alert('ERRO! Não foi possível conectar ao banco de dados.');location.href='javascript:history.go(-1)';</script>");
$total = mysql_num_rows($exec);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<img src="Imagens/FreeTravelBrazilLogo.png" width="200" height="69" />
<table width="100%" border="0" cellpadding="0" cellspacing=" 0">
  <tr>
    <td width="15"><div align="center"><img src="Imagens/cadeado.gif" alt="" width="30" height="30" /></div></td>
    <td><strong>Free Travel Turismo: Relatório de Reservas - <b><b><a href="fechar.php">Fechar Janela</a></b></b></strong></td>
  </tr>
  <tr>
    <td> </td>
    <td><table width="100%" border="0">
      <tr bgcolor="#FFFFCC">
        <td class="style16">Reserva N°</td>
        <td class="style16">Cliente</td>
        <td class="style16">Solicitante</td>
        <td class="style16">Categoria</td>
        <td class="style16">Check In</td>
        <td class="style16">Check Out</td>
      </tr>
      <?php do { ?>
      <tr>
        <td class="style19"><?php echo $row_Recordset1['codigo']; ?></a></td>
        <td class="style19"><?php echo $row_Recordset1['pax']; ?>  </td>
        <td class="style19"><?php echo $row_Recordset1['solicitante']; ?></td>
        <td class="style19"><?php echo $row_Recordset1['categoria']; ?>  </td>
        <td class="style19"><?php echo $row_Recordset1['check_in']; ?></td>
        <td class="style19"><?php echo $row_Recordset1['check_out']; ?></td>
      </tr>
       <?php } while ($row_Recordset1 = mysql_fetch_assoc($exec)); ?>
    </table></td>
  </tr>
</table>
<table border="0">
  <tr>
    <td></td>
  </tr>
</table>
</p>
<a href="busca_reserva1.php" class="style19">Fazer nova busca</a>
</body>
</html>

 

valeew MacieL! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

 

Espero que o codigo ajude alguem tbm! =]

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.