Ir para conteúdo
Fórum Script Brasil
  • 0

Pesquisar php Between


tplantte

Pergunta

Bom dia,

Estou tentando pesquisar "entre datas" no mysql mas não estou conseguindo.

no meu BD a data está ANO-MES-DIA, para exibir no meu sistema converti no select para DIA-MES-ANO 

 

*obs: se eu coloco o campo obra primeiro e depois as datas no select ele traz os registros mas o filtro DATA parece que não funcionou

 

Meu codigo está assim:

 

 

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

                $dtinicio = date('Y-m-d', strtotime($_POST['dtinicio']));
                $dtfim = date('Y-m-d', strtotime($_POST['dtfim']));
                $obra = $_POST['obra'];


  $procura = mysqli_query($con,"SELECT count(*) as caminhoes, date_format(data,'%d/%m/%Y') as data,obra_cliente,faixa,placa,quantidade,vrunit,vrtotal,horae,horas,ticket 
    FROM dosagem_usina 
    where data between '".$dtinicio."' AND '".$dtfim."' AND obra_cliente = '" .$obra. "' group by id order by id desc ");

 

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Até tentei isso já antes pra ver via texto como ta indo para o banco mas da erro quando dou um echo no $procura

 

Fatal error: Uncaught Error: Object of class mysqli_result could not be converted to string in C:\xampp\htdocs\usina\index.php:241 Stack trace: #0 {main} thrown in C:\xampp\htdocs\usina\index.php on line 241

 

Link para o comentário
Compartilhar em outros sites

  • 0
11 minutos atrás, Alyson Ronnan Martins disse:

$sql = "SELECT count(*) as caminhoes, date_format(data,'%d/%m/%Y') as data,obra_cliente,faixa,placa,quantidade,vrunit,vrtotal,horae,horas,ticket 
    FROM dosagem_usina 
    where data between '".$dtinicio."' AND '".$dtfim."' AND obra_cliente = '" .$obra. "' group by id order by id desc ";

echo $sql;

dei um echo na minha variavel data e ela está indo para o banco uma data totalmente errada, alguém sabe me dizer porque pega essa data ?

 

"1970-01-01" 😪 

Link para o comentário
Compartilhar em outros sites

  • 0
6 horas atrás, Alyson Ronnan Martins disse:

Qual foi o resultado da sua "sql"?

2020-05-01 (resultado da data inicial)

1970-01-01(resultado da data final)

CRICIUMA (resultado obra)


Fatal error: Uncaught Error: Object of class mysqli_result could not be converted to string in C:\xampp\htdocs\usina\index.php:248 Stack trace: #0 {main} thrown in C:\xampp\htdocs\usina\index.php on line 248 

Erro ao printar o SQL

 

Estranho que o intervalo de data pega esse 1970

Link para o comentário
Compartilhar em outros sites

  • 0

O MySQL só usa o formato Y-m-d, logo você só pode gravar ou resgatar nesse formato mas na hora de exibir a data você pode usar o PHP para apresentar a data de forma mais nativa.

A gramática select sum(*) as caminhoes está errada, o correto é select sum(caminhoes) as caminhoes, a primeira sintaxe vai somar todos os campos numéricos da tabela, quando o que você deseja é somar os caminhões utilizados numa obra num período de tempo:

<?php
// dosagem_usina (id,data,caminhoes,obra)(1,'2024-06-21',1,"triplex")
// (2,'2024-06-22',1,"triplex")(3,'2024-06-23',1,"triplex")
$con=new mysqli("localhost","root","","teste");
if(isset($_POST['dataInicio']))
{
    $dataInicio = $_POST['dataInicio'];
    $dataFim = $_POST['dataFim'];
    $obra = $_POST['obra'];
    $procura = mysqli_query($con,"select * from dosagem_usina 
      where data between '$dataInicio' and '$dataFim' and obra = '$obra' 
      group by id order by id desc ");
    $caminhoes=$procura->fetch_all(MYSQLI_ASSOC); ?>
    <table><th>Id<th>Data<th>Caminhões<th>Obra <?php
    foreach($caminhoes as $caminhao): ?>
      <tr><td><?=$caminhao['id']?>
          <td><?=date('d/m/Y',strtotime($caminhao['data']))?>
          <td style="text-align:center"><?=$caminhao['caminhoes']?>
          <td><?=$caminhao['obra']?> <?php
    endforeach;
    $procura = mysqli_query($con,"select sum(caminhoes) as soma from dosagem_usina
      where data between '$dataInicio' and '$dataFim' and obra='$obra'");
    $totalCaminhoes = ($procura) ? $procura->fetch_assoc()['soma'] : 0; ?>
    </table>
    O total de caminhões utilizado nessa obra  foram <?=$totalCaminhoes?><hr>
    <?php
} 
?>
Formulário para pesquisar total de caminhões utilizado numa obra<p>
(para esse exemplo utilize apenas as datas entre 21/06/2024 a 23/06/2024)<p>
<form method=post>
  <table>
  <tr><td>Data Inicio<td><input type=date name=dataInicio>
  <tr><td>Data Fim<td><input type=date name=dataFim>
  <tr><td>Obra<td><input name=obra value="triplex">
  <tr><td><td><input type=submit>
  </table>
</form>

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...