Ir para conteúdo

POWERED BY:

Arquivado

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

danmartinsiss

Criar formulario de busca com filtro de data dreamweaver

Recommended Posts

Bom dia...

alguem poderia me ajudar a criar um filtro de busca por data?

a data a qual me refiro seria a referencia do cadastro no BD fiz uma agenda telefonica mas a telefonista precisa registar as ligacoes particulares, e assim prestar um relatorio com essas ligaçoes feitas no período, que ela precisar consultar.

preciso aprender a fazer o form se comuicar com o banco para vir o resultado, creio que deve ser quase semelhante a busca por palavras chaves.

 

dei alguma lida sobre o between, mas nao sei usar ainda sou iniciante.

 

fiz muita coisa pelo dreamweaver usando o recordset.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

é com BETWEEN mesmo.

 

A ideia é esta:

 

SELECT campos FROM tabela WHERE data_hora BETWEEN '2015-01-01' AND '2015-01-20';

 

Lembrando que o campo data_hora (ou outro nome que quiser) precisa ser do tipo DATE, DATETIME e semelhantes. As datas devem estar no formato YYYY-MM-DD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo muito obrigado mano!!!

so uma duvida quando voce poe BETWEEN '2015-01-01' AND '2015-01-20';

essa data ela ja nao e fixa para o usuario??

preciso deixar ela livre para que o usuario possa colocar a data que precisar

 

e isso que entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu coloquei ali duas datas fixas, só para exemplificar. Mas você pode usar datas fornecidas pelo usuário, claro, da mesma forma como faz em um sistema de busca, login etc.

 

apenas tome cuidado para usar a data no formato que mostrei. Caso o usuário informe a data no formato dd/mm/yyyy, você precisará formatá-la antes de usá-la na SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo ta dificil pra mim rs.

me desculpe minha ignorancia

pra voce entender melhor oque estou fazendo....

 

essa e a pagina de busca

 

<form id="form1" method="get" action="fone_consulta_particular.php">
                <label>de
                  <input type="text" name="dt1" id="dt1" />
                  ao</label>
                <label>  
                  <input type="text" name="dt2" id="dt2" />
                  <input type="submit" name="button" id="button" value="Submit" />
                </label>
              </form>
e essa a pagina onde sairá o resultado da pesquisa onde eu nao estou conseguindo fazer aparecer a pesquisa..
$dt1_rsrelatorio = "-1";
if (isset($_GET['dt1'])) {
  $dt1_rsrelatorio = $_GET['dt1'];
}
$dt2_rsrelatorio = "-1";
if (isset($_GET['dt2'])) {
  $dt2_rsrelatorio = $_GET['dt2'];
}
mysql_select_db($database_dbagenda, $dbagenda);
$query_rsrelatorio = sprintf("SELECT * FROM ligparticular WHERE ligparticular.datacadastro BETWEEN %s AND %s", GetSQLValueString("%" . $dt1_rsrelatorio . "%", "date"),GetSQLValueString("%" . $dt2_rsrelatorio . "%", "date"));
$rsrelatorio = mysql_query($query_rsrelatorio, $dbagenda) or die(mysql_error());
$row_rsrelatorio = mysql_fetch_assoc($rsrelatorio);
$totalRows_rsrelatorio = mysql_num_rows($rsrelatorio);
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="ico/favicon.png">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="ico/favicon.png">
<title>Cirrus Phone</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/simple-sidebar.css" rel="stylesheet">
<style type="text/css">
.laranja {
color: #DD4814;
}
</style>

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 11]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

</head>

<body>

<div id="page-content-wrapper">
    <div class="container-fluid">
      <div class="row">
        <div class="col-lg-12">
          <div class="panel panel-info">
            <div class="panel-heading">
              <h4 class="btn-info">Relatório de ligações particulares / Consulta de Registros Registro</h4>
            </div>
            <div class="panel-body">
              <p> </p>
              <table border="0">
                <tr>
                  <td>id</td>
                  <td>lig_nome</td>
                  <td>lig_telefone</td>
                  <td>lig_ramal</td>
                  <td>lig_obs</td>
                  <td>usr_cadastro</td>
                  <td>datacadastro</td>
                </tr>
                <?php do { ?>
                  <tr>
                    <td><?php echo $row_rsrelatorio['id']; ?></td>
                    <td><?php echo $row_rsrelatorio['lig_nome']; ?></td>
                    <td><?php echo $row_rsrelatorio['lig_telefone']; ?></td>
                    <td><?php echo $row_rsrelatorio['lig_ramal']; ?></td>
                    <td><?php echo $row_rsrelatorio['lig_obs']; ?></td>
                    <td><?php echo $row_rsrelatorio['usr_cadastro']; ?></td>
                    <td><?php echo $row_rsrelatorio['datacadastro']; ?></td>
                  </tr>
                  <?php } while ($row_rsrelatorio = mysql_fetch_assoc($rsrelatorio)); ?>
              </table>
<p> </p>
              <p> </p>
              <p> </p>
            </div>
              <div class="row">
                <div class="col-md-12"> 
                <div class="panel-footer">
                Relatório impresso por: <?php echo $row_rsusrlogado['usr_nome']; ?>
na pagina de busca insiro as datas
porem mesmo com os campos dinamicos da tabela, estao vindo os resultados.
voce pode me dar essa ajuda se nao se incomodar??
obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de chamar mysql_query, faça isto:

 

 

var_dump($query_rsrelatorio);

 

Veja se a SQL está como esperado.

 

 

 

PS: funções mysql_* estão obsoletas a desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo... meu muito obrigado pela sua ajuda...

voce teria um tutotial rapido pra fazer essa busca... temos uma linguagem muito distante ainda tenho 6 meses de PHP e quando me fala ainda fico perdido...

me desculpe pela ignorancia.

 

realmente nao atendi onde validar ele antes da query

Compartilhar este post


Link para o post
Compartilhar em outros sites

realmente nao atendi onde validar ele antes da query

é só verificar se é diferente de -1.

 

Dá pra aprimorar, usando ERs, para ver se está no formato dd/mm/yyyy ou yyyy-mm-dd. Mas comece pelo básico e vá aprimorando aos poucos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia... obrigado mais uma vez

veja se esta correto: esse e o meu SQL

SELECT *
FROM ligparticular
WHERE ligparticular.datacadastro BETWEEN %dt1% AND %dt2%

esse e o PHP para pedir a consulta..

<?php
if (!isset($_SESSION)) {
  session_start();
}
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
 
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$dt1_rsrelatorio = "-1";
if (isset($_GET['dt1'])) {
  $dt1_rsrelatorio = $_GET['dt1'];
}
$dt2_rsrelatorio = "-1";
if (isset($_GET['dt2'])) {
  $dt2_rsrelatorio = $_GET['dt2'];
}
mysql_select_db($database_dbagenda, $dbagenda);
$query_rsrelatorio = sprintf("SELECT * FROM ligparticular WHERE ligparticular.datacadastro BETWEEN %s AND %s", GetSQLValueString("%" . $dt1_rsrelatorio . "%", "date"),GetSQLValueString("%" . $dt2_rsrelatorio . "%", "date"));
$rsrelatorio = mysql_query($query_rsrelatorio, $dbagenda) or die(mysql_error());
$row_rsrelatorio = mysql_fetch_assoc($rsrelatorio);
$totalRows_rsrelatorio = mysql_num_rows($rsrelatorio);
?>

e esse o form de busca

  <form id="form1" method="get" action="fone_consulta_particular.php">
                <label>de<input type="text" name="dt1" id="dt1" />
                  ao</label>
                  <label>  
                  <input type="text" name="dt2" id="dt2" />
                  <input type="submit" name="button" id="button" value="Buscar" />
                </label>
              </form>

Juro que nao sei mais oque fazer nem dormi essa noite pensando nesse codigo..

obrigado mais uma vez pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

O percentual ("%") só é usado em consultas com Like. Portanto, você não precisa dele

 

A query deve ficar assim:

 

SELECT campos
FROM ligparticular
WHERE ligparticular.datacadastro BETWEEN data_1 AND data_2;

 

onde data_1 e data_2 devem estar no formato YYYY-MM-DD

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.