Jump to content
fainformatica

Consulta entre datas a partir de um id especifico

Recommended Posts

Ola boa tarde a todos, estou com um pequeno probleminha: Quero fazer uma consulta entre datas definidas pelo usuario, até ai deu certo. mais ele me retorna todos os registro e eu quero que  me retorne apenas os registro de um id especifico. meu código até agora: 

<?php
                                        if(isset($_POST['filtrar'])){

                                        $data1 = $_POST['data1'];
                                        $data2 = $_POST['data2'];
                                        

                                          $resultado=mysql_query("SELECT 'prod_dia'.*, 'produtores'. 'id' AS 'produtores' FROM prod_dia WHERE data BETWEEN '$data1' AND '$data2' LIMIT 0, 31 UNION SELECT * FROM prod_dia WHERE id_produtor = '$id'");
                                          $linhas=mysql_num_rows($resultado); ?>

 

Share this post


Link to post
Share on other sites
<?php
$id = $_GET['id'];


  $result = mysql_query("SELECT * FROM produtores WHERE id = '$id' LIMIT 1");
  $resultado = mysql_fetch_assoc($result);

?>

Pego ela através do get pelo url

Share this post


Link to post
Share on other sites

Certifique-se de que a id é um valor numérico
Valores numéricos dispensam aspas
Não entendi o UNION, você precisa fazer duas consultas?

se for uma só, tente assim:
SELECT prod_dia.*, produtores.id AS produtores FROM prod_dia WHERE id = $id AND data BETWEEN '$data1' AND '$data2' LIMIT 0, 31

Share this post


Link to post
Share on other sites
5 minutos atrás, washalbano disse:

Certifique-se de que a id é um valor numérico
Valores numéricos dispensam aspas
Não entendi o UNION, você precisa fazer duas consultas?

se for uma só, tente assim:
SELECT prod_dia.*, produtores.id AS produtores FROM prod_dia WHERE id = $id AND data BETWEEN '$data1' AND '$data2' LIMIT 0, 31

 

Opa deu o seguinte erro: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\ranchodoleite\pages\producao\busca_producao.php on line 108

Share this post


Link to post
Share on other sites

Eu tentei fazer assim: 

 <?php
                                        if(isset($_POST['filtrar'])){

                                        $data1 = $_POST['data1'];
                                        $data2 = $_POST['data2'];
                                        

                                          $resultado=mysql_query("SELECT `prod_dia`.*, `produtores`.`id` AS produtores FROM `prod_dia`
																  INNER JOIN `prod_dia` ON `prod_dia`.`id_produtor` = `produtor`.`id`
																  WHERE `produtores`.`id` = '$id' AND data BETWEEN '$data1' AND '$data2' LIMIT 0, 31 ");
                                          $linhas=mysql_num_rows($resultado); ?>

Mais mesmo assim não deu certo.

Share this post


Link to post
Share on other sites

Opa Washalbano deu certo aqui. Muito obrigado. o AND que mencionou ali acima me ajudou muito.

A consulta ficou assim : 

<?php

 if(isset($_POST['filtrar'])){

$data1 = $_POST['data1'];
$data2 = $_POST['data2'];
                                        

$sql = "SELECT * FROM prod_dia WHERE `id_produtor` = $id AND data BETWEEN '$data1' AND '$data2' LIMIT 0, 31";
$query = mysql_query($sql);

?>

 

  • +1 1

Share this post


Link to post
Share on other sites
1 hora atrás, fainformatica disse:

 

Opa deu o seguinte erro: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\ranchodoleite\pages\producao\busca_producao.php on line 108

Ocorreu alguma falha na execução da query.

Para evitar execuções de fetch após erro em execução de query proceda assim:

mysql_query('... sua query ...') or die(mysql_error());

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Wanderson Moreira
      Boa tarde
      Alguém poderia me ajudar com uma situação?
       
      Estou tentado comparar datas para me retornar 3 situações: Vencendo, Vencido, e Ativo
      porem acredito que o formato delas estejam erradas, pois ao compará-las o valor retorna errado
       
      $data = date_create("30-07-2020"); $vencimento = date_format($data, "d-m-Y"); $dataHoje = date("d-m-Y"); $dataVencer = date('d-m-Y', strtotime('+15 days')); if($vencimento > $dataVencer){echo 'Ativo';}  
      no exemplo estou comparando se 30-07-2020 for maior > 07-08-2020 exibir o texto "Ativo"
      Porem 30-07-2020 não é maior do que 07-08-2020 e mesmo assim o valor retornado esta sendo "ativo"
       
       
       

       
       
    • By Hamilcar
      Bom dia!
      Peguei um sistema para atualizar para funcionar, o problema é que foi criado uma ligação de tabelas meio louca aqui, vou tentar explicar, tem uma tabela usuários que tem um id, e tem uma outra tabela em que a usuários é ligada e nela pode ter um ou mais usuários, o problema é que foi colocado os ids na mesma linha separados por um caracter, e os usuários se repetem, vou colocar abaixo para exemplificar:
      Tabela Usuarios/id 
                   id1, id2, id3...
       
      Tabela Escala
                  id_escala1_idUser -> id1|id2|id3...
                  id_escala2_idUser -> id1|id2|id3...
       
      Como vou gastar um tempo para refazer novamente o banco de dados, queria fazer funcionar momentaneamente, e gostaria da ajuda para tentar se possível fazer uma consulta que me traga todos os usuarios listados na tabela escala
    • By mamotinho
      Olá, pessoal mais uma vez venho pedi a ajuda de vocês estou com um problema ao roda uma query que montei, eu sou iniciante na area e não tenho muito conhecimento então o codigo que fiz foi parte de meu conhecimento básico. bom o que eu quero resolver nessa query é o seguinte, eu quero consultar uma tabela e nela pega todos os registros com a a data vencida e lista ela dentro do while em seguida retornar dentro desse if o valor da coluna de cada uma exemplo de como fiz e ficou com loop infinito.

       
      declare @id int declare @getdate datetime select @id = IDCadastrado, @getdate = RegDate from BancoTeste.dbo.MinhaTabela where RegDate < getdate() while @id is not null begin select * from BancoTeste.dbo.MinhaTabela where IDCadastrado = @id end quando eu executo isso ai ele executa infinitamente o valor do primeiro registro repetidamente.
    • By Rodymb
      Bom dia!
      Estou fazendo um select em uma tabela de cupom fiscal e preciso que me mostre o operador do caixa e o supervisor que liberou a venda, que no caso é convênio.
      A consulta que montei é a seguinte:
       
      select  c.m00ad as CUPOM,
              c.m00ac as PDV,
              c.m02ak as VALOR,
              p.descricao as FINALIZADORA,
              c.m02ah as OPERADOR,
              f.nome as NOME_OP,
              c.m02ao as SUPERVISOR,
              f.nome as NOME_SUP
      from zan_m02 c inner join tab_funcionario f
      on c.m02ao = f.cod_funcionario
      inner join tab_finalizadora p
      on c.m02ai = p.cod_finalizadora
      where c.m00af = to_date('09/03/20','dd/mm/yy')
      and c.m00za = 3
      and c.m00ac = 9
      and c.m00ad = 379678
      group by c.m00ad,c.m00ac,c.m02ak,p.descricao,c.m02ah,f.nome,c.m02ao;
       
      A consulta me retorna o seguinte resultado:

       
      Como podem ver, repetiu o mesmo nome (operador e supervisor), sendo que o código é diferente.
       
      Isso acontece por que na tabela de funcionário o campo NOME serve para operador e supervisor e o que diferencia se é supervisor ou operador temos mais duas outras tabelas. A estrutura é assim:
       
      tab_funcionario -> temos o campo cod_funcionario e nome (todos os funcionários cadastrados são armazenados nessa tabela)
      tab_perfil -> temos os campos cod_perfil e descricao (todos os perfis cadastrados são armazenados nessa tabela)
      tab_perfil_funcionario -> temos os campos cod_funcionario e cod_perfil (tabela que relaciona as tabelas tab_funcionario e tab_perfil)
       
      A única coisa que preciso é que apareça no NOME_OP o nome do operador e não o nome do supervisor igual está aparecendo.
       
    • By agness
      a imagem é uma parte de uma tabela extensa.
      como eu faço uma consulta por exemplo para jogador igual à 1, 3, 5 e liga igual à 1?
      isso é para uma verificação se existe uma liga com exatamente os jogadores 1, 3 e 5, nem mais nem menos
      espero ter sido claro
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.