Jump to content
Fórum Script Brasil
  • 0

Consultas com datas


mandraker

Question

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 to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...