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

Como Realizar A Pesquisa..., Por Da Data E também Por Descrição?


Martinsrj

Pergunta

Olá pessoal, beleza?

Gostaria de saber como que eu realizo a pesquisa do seguinte formulário, pois no mesmo formulário existe o botão pesquisa por descrição e também. o botão pesquisa por data.

Teria como exibir os dados no mesmo formulário???

<html>
<head>
<title>Consulta</title>
</head>

<body>
<form action="consulta_caixa.php" method="post">
<input type="hidden" name="operacao" value="incluir">
<p>
<font face="Arial, Helvetica, sans-serif" style="text-align:left">Pesquisa:<br>
<br> 
<input type="text" name="descricao" size="50">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="Pesquisa por Descri&ccedil;&atilde;o" name="enviar"></p>
<input name="data" type="text" size="10" maxlength="10">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


<label>
<input type="radio" name="filtro" value="maior"><</label>&nbsp;&nbsp;
<label>
<input type="radio" name="filtro" value="menor">></label>&nbsp;&nbsp;
<label>
<input type="radio" name="filtro" value="igual">
=</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Pesquisa por Data" name="enviar">


</p>
</form>
</body>
</html>
O banco de dados está da seguinte forma:
CREATE TABLE caixa
(
codigo serial NOT NULL,
nf numeric(20) NOT NULL,
descricao character varying(100) NOT NULL,
data character varying(20) NOT NULL,
valortotal money NOT NULL,
saldo character(1) NOT NULL
)
Gostaria que os dados sejam exibidos dessa forma com titulo e subtitulo CONTROLE DE CAIXA N° Nota Fiscal | Descrição | Data | Valor | Saldo O código do formulário é:
<html>
<head>
<title>Consulta</title>
</head>

<body>
<form action="consulta_caixa.php" method="post">
<input type="hidden" name="operacao" value="incluir">
<p>
<font face="Arial, Helvetica, sans-serif" style="text-align:left">Pesquisa:<br>
<br> 
<input type="text" name="descricao" size="50">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="Pesquisa por Descri&ccedil;&atilde;o" name="enviar"></p>
<input name="data" type="text" size="10" maxlength="10">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label>
<input type="radio" name="filtro" value="maior"><</label>&nbsp;&nbsp;
<label>
<input type="radio" name="filtro" value="menor">></label>&nbsp;&nbsp;
<label>
<input type="radio" name="filtro" value="igual">
=</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Pesquisa por Data" name="enviar">
</p>
</form>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Na parte do filtro, use o switch para montar a estrutura que será usada na query... ai na query...

"SELECT * FROM tabela WHERE descricao LIKE'".$_POST['descricao']."' AND data ".$operador .""

O único detalhe é que você usou para armazenar uma data um campo que eu acho (você não está usando o mysql, né?) que não é apropriado para isso, logo acho que a consulta não poderá ser eficaz...

O switch vai ter que ser algo assim:

case "maior":$operador = "> '".$_POST['data']."'"; break;

Link para o comentário
Compartilhar em outros sites

  • 0
Na parte do filtro, use o switch para montar a estrutura que será usada na query... ai na query...

"SELECT * FROM tabela WHERE descricao LIKE'".$_POST['descricao']."' AND data ".$operador .""
O único detalhe é que você usou para armazenar uma data um campo que eu acho (você não está usando o mysql, né?) que não é apropriado para isso, logo acho que a consulta não poderá ser eficaz... O switch vai ter que ser algo assim: case "maior":$operador = "> '".$_POST['data']."'"; break;
Eu utilizo postgree. No consulta_caixa.html tem como eu tratar os doi botões? alguém com alguma idéia? Realizei algumas modificações, mas continua sem sucesso: consulta_caixa.html
<html>
<head>
<title>Consulta</title>
</head>

<body>
<form action="consulta_caixa.php" method="post">
<input type="hidden" name="operacao" value="incluir">
<p>
<font face="Arial, Helvetica, sans-serif" style="text-align:left">Pesquisa:<br>
  <br> 
  <input type="text" name="descricao" size="50">
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="submit" value="Pesquisa por Descri&ccedil;&atilde;o" name="enviar"></p>
  <input name="data" type="text" size="10" maxlength="10">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

  
    <label>
      <input type="radio" name="filtro" value="maior"><</label>&nbsp;&nbsp;
    <label>
      <input type="radio" name="filtro" value="menor">></label>&nbsp;&nbsp;
    <label>
      <input type="radio" name="filtro" value="igual">
      =</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Pesquisa por Data" name="enviar">

    
  </p>
</form>
</body>
</html>
consulta_caixa.php
<?php
$descricao = $_POST["descricao"];
$data = $_POST["data"];
$valor = $_POST["valortotal"];
$saldo = $_POST["saldo"];
include "conecta_pg.php";

$str_order_by = "descricao";
if(isset($_POST['str_order_by']) && !empty($_POST['str_order_by']))
{
$str_order_by = $_POST['str_order_by'];
}

$str_select = "SELECT * FROM caixa ORDER BY " . $str_order_by;
$query = pg_query ($str_select);
$array = pg_fetch_array ($query);
    echo "<tr>";
    echo "<td> ($array ['nf'])</td>";
    echo "<td> ($array ['descricao'])</td>";
    echo "<td> ($array ['valor'])</td>";
    echo "<td> ($array ['saldo'])</td>";
    echo "</tr>";
?>

Porem quando digito no campo pesquisa por descrição e clico

no botão pesquisa por descrição na pagina consulta_caixa.php aparece

o seguinte resultado:

(Array ['nf']) (Array ['descricao']) (Array ['valor']) (Array ['saldo'])

Link para o comentário
Compartilhar em outros sites

  • 0

Estou perdidinho... rsrsrs

alguém pode me uma direção?

Realizei algumas modificações no código, mas ainda não está do jeito que eu quero:

<?php
$descricao = $_POST["descricao"];
$data = $_POST["data"];
$valor = $_POST["valortotal"];
$saldo = $_POST["saldo"];
include "conecta_pg.php";

$str_order_by = "descricao";
if(isset($_POST['str_order_by']) && !empty($_POST['str_order_by']))
{
$str_order_by = $_POST['str_order_by'];
}

// $str_select = "SELECT * FROM caixa ORDER BY " . $str_order_by;
$str_select = "select * from caixa where descricao like '%$descricao%'";
$query = pg_query ($str_select);
// $num = pg_num_rows($str_select);
$resultado = pg_fetch_array ($query);
echo "<tr>";
echo "<td> (".$resultado ['nf'].")</td>";
echo "<td> (".$resultado ['descricao'].")</td>";
echo "<td> (".$resultado ['valor'].")</td>";
echo "<td> (".$resultado ['saldo'].")</td>";
echo "</tr>"; 
?>

Só aparece isso no resultado:

(1) (restaurante) () ©

Gostaria que quando a pessoa digitar no campo pesquisa a letra R ou colocando a data venha exibir na tela tudo que está registrado no banco de dados e o saldo que há no Caixa.

A exibição seria dessa forma:

N° da Nota Fiscal | Descrição | Data | Valor | Saldo

1 Restaurante 18/07/2007 R$ 20,00 D

14247 Rádio 15/07/2007 R$ 150,00 D

E no final da tabela o saldo que há no caixa >>> R$ 20,00

Link para o comentário
Compartilhar em outros sites

  • 0

O problema é que só está exibindo um resultado? Pois então faça isso ...

<?php
...
$num = pg_num_rows($str_select);
for($i=0;$i<$num;$i++)
{
     $nf = pg_result($str_select,$i,"nf");
     $descricao = pg_result($str_select,$i,"descricao");
     $valor = pg_result($str_select,$i,"valor");
     $saldo = pg_result($str_select,$i,"saldo");

     echo "<tr>";
     echo "<td> (".$nf.")</td>";
     echo "<td> (".$descricao.")</td>";
     echo "<td> (".$valor.")</td>";
     echo "<td> (".$saldo.")</td>";
     echo "</tr>"; 
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal, olha eu aqui de novo.

Realizei algumas modificações no código da pagina consulta_pagina.php

Código abaixo:

<?php
$descricao = $_POST["descricao"];
$data = $_POST["data"];
$valor = $_POST["valortotal"];
$saldo = $_POST["saldo"];
include "conecta_pg.php";

$str_order_by = "descricao";
if(isset($_POST['str_order_by']) && !empty($_POST['str_order_by']))
{
$str_order_by = $_POST['str_order_by'];
}

// $str_select = "SELECT * FROM caixa ORDER BY " . $str_order_by;
$str_select = "select * from caixa where descricao like '%$descricao%'";
$query = pg_query ($str_select);
// $num = pg_num_rows($str_select);
$resultado = pg_fetch_array ($query);

/* echo "<tr>";
echo "<td> (".$resultado ['nf'].")</td>";
echo "<td> (".$resultado ['descricao'].")</td>";
echo "<td> (".$resultado ['valor'].")</td>";
echo "<td> (".$resultado ['saldo'].")</td>";
echo "</tr>"; */

$total = 0; //inicializa o contador zerado. não obrigatorio.

while ($resultado = pg_fetch_array ($query)){
echo "<tr>";
echo "<td> (".$resultado ['nf'].")</td>";
echo "<td> (".$resultado ['descricao'].")</td>";
echo "<td> (".$resultado ['valor'].")</td>";

// $total = $total + $resultado ['valor'];
$total = $total + $resultado ['saldo'];  
// tem de ser float, se tiver como string corrige ai. separação decimal "." (ponto) e não "," //(vírgula).

echo "<td> (".$resultado ['saldo'].")</td>";
echo "</tr>";
} 
//fim do loop

echo "Total no Caixa: $total";
?>
Porem exibe assim na tela: (20) (Pizzaria) () © (150) (Teste) () (D) (120) (Sabonete) () (D)Total no Caixa: 0 Mas no banco de dados existe os seguintes dados no link abaixo: http://br.geocities.com/infolinho/
O problema é que só está exibindo um resultado? Pois então faça isso ...
<?php
...
$num = pg_num_rows($str_select);
for($i=0;$i<$num;$i++)
{
     $nf = pg_result($str_select,$i,"nf");
     $descricao = pg_result($str_select,$i,"descricao");
     $valor = pg_result($str_select,$i,"valor");
     $saldo = pg_result($str_select,$i,"saldo");

     echo "<tr>";
     echo "<td> (".$nf.")</td>";
     echo "<td> (".$descricao.")</td>";
     echo "<td> (".$valor.")</td>";
     echo "<td> (".$saldo.")</td>";
     echo "</tr>"; 
}
?>
Colocando o seu código ele dá o seguinte erro: Warning: pg_num_rows(): supplied argument is not a valid PostgreSQL result resource in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\consulta_caixa.php on line 46 Renato, abaixo está o código com as modificações como você sugeriu:
<?php
$descricao = $_POST["descricao"];
$data = $_POST["data"];
$valor = $_POST["valortotal"];
$saldo = $_POST["saldo"];
include "conecta_pg.php";

$str_order_by = "descricao";
if(isset($_POST['str_order_by']) && !empty($_POST['str_order_by']))
{
$str_order_by = $_POST['str_order_by'];
}

// $str_select = "SELECT * FROM caixa ORDER BY " . $str_order_by;
$str_select = "select * from caixa where descricao like '%$descricao%'";
$query = pg_query ($str_select);
// $num = pg_num_rows($str_select);
$resultado = pg_fetch_array ($query);

/* echo "<tr>";
echo "<td> (".$resultado ['nf'].")</td>";
echo "<td> (".$resultado ['descricao'].")</td>";
echo "<td> (".$resultado ['valor'].")</td>";
echo "<td> (".$resultado ['saldo'].")</td>";
echo "</tr>"; */
/*
$total = 0; //inicializa o contador zerado. não obrigatorio.

 while ($resultado = pg_fetch_array ($query)){
echo "<tr>";
echo "<td> (".$resultado ['nf'].")</td>";
echo "<td> (".$resultado ['descricao'].")</td>";
echo "<td> (".$resultado ['valor'].")</td>";

// $total = $total + $resultado ['valor'];
$total = $total + $resultado ['saldo'];  
// tem de ser float, se tiver como string corrige ai. separação decimal "." (ponto) e não "," //(vírgula).

echo "<td> (".$resultado ['saldo'].")</td>";
echo "</tr>"; 
} 
42   //fim do loop
43
44   echo "Total no Caixa: $total"; */
45
46  $num = pg_num_rows($str_select);
47  for($i=0;$i<$num;$i++)
48  {
49     $nf = pg_result($str_select,$i,"nf");
50     $descricao = pg_result($str_select,$i,"descricao");
     $valor = pg_result($str_select,$i,"valor");
     $saldo = pg_result($str_select,$i,"saldo");

     echo "<tr>";
     echo "<td> (".$nf.")</td>";
     echo "<td> (".$descricao.")</td>";
     echo "<td> (".$valor.")</td>";
     echo "<td> (".$saldo.")</td>";
     echo "</tr>"; 
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Ok. O problema deve estar no $str_select. porque a variável $descricao ainda não deve estar definida. Faça oseguinte ...

<?php
if($_SERVER['REQUEST_METHOD']=="POST")
{
$descricao = $_POST["descricao"];
$data = $_POST["data"];
$valor = $_POST["valortotal"];
$saldo = $_POST["saldo"];
include "conecta_pg.php";

$str_order_by = "descricao";
if(isset($_POST['str_order_by']) && !empty($_POST['str_order_by']))
{
$str_order_by = $_POST['str_order_by'];
}

// $str_select = "SELECT * FROM caixa ORDER BY " . $str_order_by;
$str_select = "select * from caixa where descricao like '%$descricao%'";
$query = pg_query ($str_select);
// $num = pg_num_rows($str_select);
$resultado = pg_fetch_array ($query);

/* echo "<tr>";
echo "<td> (".$resultado ['nf'].")</td>";
echo "<td> (".$resultado ['descricao'].")</td>";
echo "<td> (".$resultado ['valor'].")</td>";
echo "<td> (".$resultado ['saldo'].")</td>";
echo "</tr>"; */
/*
$total = 0; //inicializa o contador zerado. não obrigatorio.

while ($resultado = pg_fetch_array ($query)){
echo "<tr>";
echo "<td> (".$resultado ['nf'].")</td>";
echo "<td> (".$resultado ['descricao'].")</td>";
echo "<td> (".$resultado ['valor'].")</td>";

// $total = $total + $resultado ['valor'];
$total = $total + $resultado ['saldo'];  
// tem de ser float, se tiver como string corrige ai. separação decimal "." (ponto) e não "," //(vírgula).

echo "<td> (".$resultado ['saldo'].")</td>";
echo "</tr>"; 
} 
42   //fim do loop
43
44   echo "Total no Caixa: $total"; */
45
46  $num = pg_num_rows($str_select);
47  for($i=0;$i<$num;$i++)
48  {
49     $nf = pg_result($str_select,$i,"nf");
50     $descricao = pg_result($str_select,$i,"descricao");
     $valor = pg_result($str_select,$i,"valor");
     $saldo = pg_result($str_select,$i,"saldo");

     echo "<tr>";
     echo "<td> (".$nf.")</td>";
     echo "<td> (".$descricao.")</td>";
     echo "<td> (".$valor.")</td>";
     echo "<td> (".$saldo.")</td>";
     echo "</tr>"; 
}
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Renato continua dando erro:

Warning: pg_num_rows(): supplied argument is not a valid PostgreSQL result resource in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\consulta_caixa.php on line 48

Segue abaixo o código da pagina consulta_caixa.html:

<html>
<head>
<title>Consulta</title>
</head>

<body>
<form action="consulta_caixa.php" method="post">
<input type="hidden" name="operacao" value="incluir">
<p>
<font face="Arial, Helvetica, sans-serif" style="text-align:left">Pesquisa:<br>
  <br> 
  <input type="text" name="descricao" size="50">
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="submit" value="Pesquisa por Descri&ccedil;&atilde;o" name="enviar"></p>
  <input name="data" type="text" size="10" maxlength="10">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

  
    <label>
      <input type="radio" name="filtro" value="maior"><</label>&nbsp;&nbsp;
    <label>
      <input type="radio" name="filtro" value="menor">></label>&nbsp;&nbsp;
    <label>
      <input type="radio" name="filtro" value="igual">
      =</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Pesquisa por Data" name="enviar">

    
  </p>
</form>
</body>
</html>

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