Ir para conteúdo

POWERED BY:

Arquivado

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

Leoo xD

[Resolvido] Pesquisa com formulario(lista)

Recommended Posts

Preciso de uma pagina, que faz pesquisa , com os formularios lista, que pega os valores no banco de dados.

O codigo que eu fiz para pesquisa, é esse:

 

<?php
 $a ="$HTTP_POST_VARS[central]";
 $b ="$HTTP_POST_VARS[mes]";
		$qr1 = "SELECT central2,mes FROM previstoxrealizado WHERE central2='$a',mes='$b' ORDER BY num_auto DESC";
		$sql = mysql_query($qr1);
		echo $sql['central2'];
?>

 

Alguem ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, pra que usar HTTP_POST_VARS? Ela já está obsoleta. Agora existe $_POST já amigo. Seu código tá bastantante errado. Usa esse:

 

<?php
  $a = $_POST["central"];
  $b = $_POST["mes"];
  
  $qr1 = "SELECT central2,mes FROM previstoxrealizado WHERE central2='$a',mes='$b' ORDER BY num_auto DESC"; // Monto a consulta
  $sql = mysql_query($qr1); // Executo a consulta
  $arr = mysql_fetch_array($sql); // Retorno um array com os dados do BD
  
  echo $arr['central2'];
?>

Falo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Leoo,

 

Estou postando aqui apenas porque eu já tinha escrito, mas por problemas no fórum não consegui postar, então só pra complementar a ajuda.

 

Não utilize $HTTP_POST_VARS pois essa array global, além de ter falhas de segurança está obsoleta.

 

Sobre o código, dê uma olhada abaixo, algumas alterações que eu julgo necessárias.

 

Espero que ajude..

 

<?php

$a = $_POST['central'];
$b = $_POST['mes'];

$conexao = mysql_connect('servidor', 'usuario', 'senha'); /* mude para os dados do seu servidor */
mysql_select_db('tabela', $conexao); /* mesma coisa aqui. */
/**
   * Não sei se você já tinha colocado isso aqui antes, mas caso não tenha, lembre-se que é necessário.
   */

$qr1 = "SELECT central2, mes FROM previstoxrealizado WHERE central2 = '$a' AND mes = '$b' ORDER BY num_auto DESC";
$sql = mysql_query($qr1);

while($resultado = mysql_fetch_array($sql))
{
	echo $dados['central2'];
	echo "<br />";
	echo $dados['mes'];
	echo "<br />";
}
?>

Qualquer dúvida poste aqui pra te ajudarmos =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

todo mundo falo do $_POST

 

mais ninguém lembro que ele pode estar usando host windows!

 

se tiver usando host windows usa esse aki

<?php

$a = trim($_POST['central']);
$b = trim($_POST['mes']);

$conexao = mysql_connect('servidor', 'usuario', 'senha'); /* mude para os dados do seu servidor */
mysql_select_db('tabela', $conexao); /* mesma coisa aqui. */
/**
   * Não sei se você já tinha colocado isso aqui antes, mas caso não tenha, lembre-se que é necessário.
   */

$qr1 = "SELECT central2, mes FROM previstoxrealizado WHERE central2 = '$a' AND mes = '$b' ORDER BY num_auto DESC";
$sql = mysql_query($qr1);

while($resultado = mysql_fetch_array($sql))
{
        echo $dados['central2'];
        echo "<br />";
        echo $dados['mes'];
        echo "<br />";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

trim() não é exclusividade de servidor windows. É tratamento de string. Isso deve ser feito de qualquer forma, independentemente do servidor.

 

Vale lembrar que o tratamento de string envolve muito mais coisas que simplesmente usar trim().

 

Cuidado com SQL Injection

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao exibi os resultados, esta assim o codigo:

 

<?php
$a = $_POST['central'];
$b = $_POST['mes'];
$qr1 = "SELECT central2, mes FROM previstoxrealizado WHERE central2 = '$a' AND mes = '$b' ORDER BY num_auto DESC";
$sql = mysql_query($qr1);

while($resultado = mysql_fetch_array($sql))
{
       echo $resultado['central2'];

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

execute a consulta assim:

 

 

$sql = mysql_query($qr1) or exit( mysql_error());

 

deve aparecer um erro na tela.

 

nao aparaceu nenhum erro. Agora apareceu os resultados. Vou ver se deu certo, vlew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew pessoal, deu certo minha pesquisa.

Só mais uma duvida, se o nao existe o resultado da pesquisa, como colocar uma mensagem, porque se fica em branco parece erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

USe o condicional IF juntamenteo com a função que o Beraldo passou acima.

 

IF (mysql_num_rows)

else echo "MSG DE ERRO";

 

assim? desculpe minha ignorancia.

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.