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

Consultas com datas


mandraker

Pergunta

Pessoal bom dia!

Estou precisando uregente terminar um sitema que estou fazer.

Preciso buscar a quantidade de OS, que tenho em um determinado tempo que eu escolho

tipo entre 12/09/2011 a 12/12/11

so que eu so vou escolher o mes e ano, e não estou sabendo fazer isso, esta retornando nada na minha consulta, segue codigo.

comercial.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui-lightness/jquery-ui-1.8.9.custom.css" />
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.datepicker-pt-BR.js"></script>
<script type="text/javascript" src="js/jquery.ui.datepicker.js"></script>
<title>Infraestrutura</title>
<script type="text/javascript">
    $(document).ready(function(){
        $("#date").datepicker();
        $("form input:first").focus();
        $("form").validate({
            rules: {
                image:{
                    required: false,
                    accept: "png|bmp|gif|jpg|jpeg"
                }
            }
        });
    });
</script>
<script type="text/javascript">
    $(document).ready(function(){
        $("#date1").datepicker();
        $("form input:first").focus();
        $("form").validate({
            rules: {
                image:{
                    required: false,
                    accept: "png|bmp|gif|jpg|jpeg"
                }
            }
        });
    });
</script>
</head>
<body>
    <div id="adminContent">
        <h1>Numero de OS(s) Emitidas por mês</h1>
        <br /><br />
        <div id="msg"></div>
        <form action="buscar_comercial.php" method="POST">
            <fieldset>
                <legend>Insira os dados no formulário abaixo:</legend>
                <div id="error"></div>
                <p>
                <label for="mes">Mês:</label>
                   <SELECT NAME="mes">
                   <OPTION VALUE="01">Janeiro
                   <OPTION VALUE="02">Fevereiro
                   <OPTION VALUE="03">Março
                   <OPTION VALUE="04">Abril
                   <OPTION VALUE="05">Maio
                   <OPTION VALUE="06">Junho
                   <OPTION VALUE="07">Julho
                   <OPTION VALUE="08">Agosto
                   <OPTION VALUE="09">Setembro
                   <OPTION VALUE="10">Outubro
                   <OPTION VALUE="11">Novenbro
                   <OPTION VALUE="12">Dezembro
                   </SELECT>
                <br />
                </p>
                <p>
                <label for="ano">Ano:</label>
                   <SELECT NAME="ano">
                   <OPTION VALUE="2008">2008
                   <OPTION VALUE="2009">2009
                   <OPTION VALUE="2010">2010
                   <OPTION VALUE="2011">2011
                   </SELECT>
                <br />
                </p>

                <input type="submit" value="Enviar" />
            </fieldset>
        </form>
    </div>
</body>
</html>
buscar_comercial.php
<?php
 include "conexao.php";

$ano = $_POST['ano'];
$mes = $_POST['mes'];


$sql = "SELECT * from ordemservico WHERE mes LIKE '%$mes%' AND ano LIKE '%$ano%'";
$data = $mes.'-'.$ano;
$query = mysql_query("SELECT count(*) from ordemservico dt_abertura LIKE '%$data%'");
//$quant = mysql_num_rows($query);

 echo "A consulta retornou $query registros.";
?>

alguém pode me ajudar nisso??

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Cara tive que mudar aqui agora que o feche pediu..

ficou assim.

comercial.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui-lightness/jquery-ui-1.8.9.custom.css" />
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.datepicker-pt-BR.js"></script>
<script type="text/javascript" src="js/jquery.ui.datepicker.js"></script>
<title>Infraestrutura</title>
<script type="text/javascript">
    $(document).ready(function(){
        $("#date").datepicker();
        $("form input:first").focus();
        $("form").validate({
            rules: {
                image:{
                    required: false,
                    accept: "png|bmp|gif|jpg|jpeg"
                }
            }
        });
    });
</script>
<script type="text/javascript">
    $(document).ready(function(){
        $("#date1").datepicker();
        $("form input:first").focus();
        $("form").validate({
            rules: {
                image:{
                    required: false,
                    accept: "png|bmp|gif|jpg|jpeg"
                }
            }
        });
    });
</script>
</head>
<body>
    <div id="adminContent">
        <h1>Buscar quantitativos de OS por período</h1>
        <br /><br />
        <div id="msg"></div>
        <form action="buscar_comercial.php" method="POST">
            <fieldset>
                <legend>Insira os dados no formulário abaixo:</legend>
                <div id="error"></div>

                <p>
                <label for="date">De:<em>*</em></label>
                <input type="text" name="date" id="date" size="6" class="required" />
                <br />
                </p>

                <p>
                <label for="date1">Até:<em>*</em></label>
                <input type="text" name="date1" id="date1" size="6" class="required" />
                <br />
                </p>

                <input type="submit" value="Enviar" />
            </fieldset>
        </form>
    </div>
</body>
</html>
buscar_comercial.php
<?php
 include "conexao.php";

$date = $_POST['date'];
$date1 = $_POST['date1'];

$query = "SELECT count(*) from ordemservico dt_abertura LIKE '%$date%' and LIKE '%$date1%'";
$quant = mysql_num_rows($query);

 echo "A consulta retornou $quant registros.";
?>

Mas mesmo assim deu erro.

Link para o comentário
Compartilhar em outros sites

  • 0

Não faça consultas em campos do tipo data usando LIKE

Neste caso, você precisa de um between.

SELECT count(*) 
from ordemservico WHERE dt_abertura between '$date 00:00:00' and '$date1 23:59:59'

Lembrando que as datas contidas nas variáveis $date e $date1 tem que estar no formato Y-m-d

Link para o comentário
Compartilhar em outros sites

  • 0

Segue uma função para converter a data

function mysqlData($strData = NULL) {
        if(empty($strData)) {
            return 'NULL';
        }
        else {
            $strData = explode('/',$strData);
            return sprintf('%u-%u-%u',$strData[2],$strData[1],$strData[0]);
        }
    }
    
    
    $data = '26/01/2011';
    
    echo mysqlData($data); //2011-1-26

Link para o comentário
Compartilhar em outros sites

  • 0

Estou fazendo errado, porque não retorna nada...

Olha o código a baixo:

<?php
 include "conexao.php";

$date = $_POST['date'];
$date1 = $_POST['date1'];

$query = "SELECT count(*) from ordemservico where dt_abertura BETWEEN '$date 00:00:00' and '$date1 23:59:59'";
$quant = mysql_query($query);

 function mysqlData($strData = NULL) {
        if(empty($strData)) {
            return 'NULL';
        }
        else {
            $strData = explode('/',$strData);
            return sprintf('%u-%u-%u',$strData[2],$strData[1],$strData[0]);
        }
    }


    $data = '$date';
    $data1 = '$date1';

 echo "A consulta retornou $quant registros.";
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Função STR_TO_DATE

STR_TO_DATE('11/11/2011','%d/%m/%Y');
de
$query = "SELECT count(*) from ordemservico where dt_abertura BETWEEN '$date 00:00:00' and '$date1 23:59:59'";
para
$query = "SELECT count(*) FROM ordemservico WHERE dt_abertura BETWEEN STR_TO_DATE('$date','%d/%m/%Y') AND STR_TO_DATE('$date1','%d/%m/%Y')";

Veja se funciona agora, abços.

Link para o comentário
Compartilhar em outros sites

  • 0

Retornou nadaa em branco

<?php
 include "conexao.php";

$date = $_POST['date'];
$date1 = $_POST['date1'];

$query = "SELECT count(*) FROM ordemservico WHERE dt_abertura BETWEEN STR_TO_DATE('$date','%d/%m/%Y') AND STR_TO_DATE('$date1','%d/%m/%Y')";
$quant = mysql_query($query);

 echo "A consulta retornou $quant registros.";
?>

Link para o comentário
Compartilhar em outros sites

  • 0
Retornou nadaa em branco

<?php
 include "conexao.php";

$date = $_POST['date'];
$date1 = $_POST['date1'];

$query = "SELECT count(*) FROM ordemservico WHERE dt_abertura BETWEEN STR_TO_DATE('$date','%d/%m/%Y') AND STR_TO_DATE('$date1','%d/%m/%Y')";
$quant = mysql_query($query);

 echo "A consulta retornou $quant registros.";
?>
Sua lógica está errada, você só executou a query e ela te retornou um resource, precisa fazer um fetch nela.
$query = "SELECT count(*) FROM ordemservico WHERE dt_abertura BETWEEN STR_TO_DATE('$date','%d/%m/%Y') AND STR_TO_DATE('$date1','%d/%m/%Y')";
$queryQuantidade = mysql_query($query);
$arrayQuantidade = mysql_fetch_array($queryQuantidade);

echo "A consulta retornou $arrayQuantidade[0] registros.";

Se não funcionar assim posta o echo da $query aqui.

Abços.

Link para o comentário
Compartilhar em outros sites

  • 0

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.8.0\www\indicadores\buscar_comercial.php on line 9

A consulta retornou SELECT count(*) FROM ordemservico WHERE dt_abertura BETWEEN STR_TO_DATE('01/08/2011','%d/%m/%Y') and STR_TO_DATE('21/09/2011','%d/%m/%Y') registros.

Link para o comentário
Compartilhar em outros sites

  • 0
<?php
   include "conexao.php";

   $date = $_POST['date'];
   $date1 = $_POST['date1'];

   $queryQuantidade = mysql_query("SELECT count(*) FROM ordemservico WHERE dt_abertura BETWEEN STR_TO_DATE('$date','%d/%m/%Y') AND STR_TO_DATE('$date1',' %d/%m/%Y');") or die("MySQL ERROR: ".mysql_error());
   $arrayQuantidade = mysql_fetch_array($queryQuantidade);

   echo "A consulta retornou $arrayQuantidade[0] registros.";

?>

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...