Ir para conteúdo

POWERED BY:

Arquivado

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

dgopereira

[Resolvido] Consulta por data e hora

Recommended Posts

Olá Pessoal,

 

Como faço para fazer uma conculta por data e hora? na tabela registro tenho os campos:

 

data | horaEntrada | horaSaida

 

Dai keria fazer tipo um input para, de: 01/01/2010 a 25/01/2010 de 07:00 as 18:00, tentei mas nao deu certo...

 

Ou faço 4 inputs?

 

Hora Inic Entrada:

Hora Fina Entrada:

 

Hora Inic Saída:

Hora Fina Saída:

 

 

 

SELECT * FROM registro WHERE

 

DATA >= '$datai' AND DATA <= '$dataf'

 

AND horaentrada >= '$entradai' AND horaentrada <= '$entradaf'

 

AND horasaida >= '$saidai'AND horasaida <= '$saidaf'

 

ORDER BY DATA ASC

 

???

?

?

help-me

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua dificuldade é montar a consulta ou montar o formulário e passar os valores para a consulta?

Qual banco de dados está utilizando?

O que já tentou fazer?

Apareceu algum erro?

Qual?

 

Ajude-nos a te ajudar

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, vamos lá:

 

Minha dificuldade é em montar a consulta.

Banco: mysql

Erro: nao aparece, apenas a consulta nao traz nada

 

 

...tentei mudar o nome do campo, mas nada, n sei o q esta dando errado na minha consulta, a tabela esta assim:

 

 

CREATE TABLE `registro` (

`rg` int(10) unsigned NOT NULL,

`id` int(10) unsigned NOT NULL auto_increment,

`data` date NOT NULL,

`nrcracha` int(6) unsigned NOT NULL,

`nome` varchar(45) NOT NULL,

`tipo` varchar(45) NOT NULL,

`empresa` varchar(45) NOT NULL,

`localvisita` varchar(45) NOT NULL,

`horaentrada` time default NULL,

`horasaida` time default NULL,

PRIMARY KEY USING BTREE (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=1 ;

 

Quando preencho os inputs tipo, data: 01/01/2010 a 29/01/2010 - Entrada: 00:00 as 23:59 - Saída: 00:00 as 23:59 era para trazer todos os registos, mas nao traz nada....

 

SELECT * FROM registro WHERE

 

Data >= '$datai' AND Data <= '$dataf' AND

 

horaentrada >= '$horaiEntrada' AND horaentrada <= '$horafEntrada' AND

 

horasaida >= '$horaiSaida' AND horasaida <= '$horafSaida'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o problema é em montar a consulta, moverei para o fórum de MySQL.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem a sua duvida, mais tente desta forma

 

SELECT * FROM registro

WHERE data BETWEEN '$datai' AND '$dataf'

AND horaentrada >= '$horaiEntrada'

AND horasaida <= '$horafSaida'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem a sua duvida, mais tente desta forma

 

SELECT * FROM registro

WHERE data BETWEEN '$datai' AND '$dataf'

AND horaentrada >= '$horaiEntrada'

AND horasaida <= '$horafSaida'

 

****************PROBLEMA SOLUCIONADO:****************

 

Olá pessoal!! consegui resolver!!! obgd a todos pelo help, segue o cod para qm precisar... o form, tinha variável com nome errado, o correto é esse:

 

Função para converter a data para inserir no banco

function ConverteData($Data){
if (strstr($Data, "/"))//verifica se tem a barra /
{
$d = explode ("/", $Data);//tira a barra
$rstData = "$d[2]-$d[1]-$d[0]";//separa as datas $d[2] = ano $d[1] = mes etc...
return $rstData;
} elseif(strstr($Data, "-")){
$d = explode ("-", $Data);
$rstData = "$d[2]/$d[1]/$d[0]";
return $rstData;
}else{
return "Data invalida";
}
}

$dataini = ConverteData($_POST["datai"]);
$datafim = ConverteData($_POST["dataf"]);

formulário

 


Data:           <input type="text" name="datai" id="datai")"/>
a                 <input type="text" name="dataf" id="dataf") "/>
      
Entrada Hora: <input type="text" name="horaiEntrada" id="$horaiEntrada")"/>
a                   <input type="text" name="horafEntrada" id="$horafEntrada")"/>
            
Saída Hora:   <input type="text" name="horaiSaida" id="$horaiSaida")"/>
a                  <input type="text" name="horafSaida" id="$horafSaida")"/>

Págiana que processa:

$dataini = ConverteData($_POST["datai"]);
$datafim = ConverteData($_POST["dataf"]);

$horaiEntrada = $_POST["horaiEntrada"];
$horafEntrada = $_POST["horafEntrada"];

$horaiSaida = $_POST["horaiSaida"];
$horafSaida = $_POST["horafSaida"];


$result = mysql_query(" SELECT * FROM registro WHERE

Data >= '$dataini' AND Data <= '$datafim' AND

horaentrada >= '$horaiEntrada ' AND horaentrada <= '$horafEntrada' AND

horasaida >= '$horaiSaida' AND horasaida <= '$horafSaida'

ORDER BY id ASC LIMIT $offset,$entries_per_page")

or die (mysql_error());

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.