Leoo xD 0 Denunciar post Postado Julho 15, 2009 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
Beraldo 864 Denunciar post Postado Julho 16, 2009 Veja o exemplo desta página: http://www.php.net/mysql_fetch_Assoc Use $_POST em vez de $HTTP_POST_VARS E use aspas simples nos índices: $a = $_POST['valor']; Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Julho 16, 2009 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
.:: Pegasus ::. 0 Denunciar post Postado Julho 16, 2009 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
def 1 Denunciar post Postado Julho 16, 2009 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
.:: Pegasus ::. 0 Denunciar post Postado Julho 16, 2009 Eu uso host Windows e não preciso usar o Trim... Por que deve-se usa-lo? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 16, 2009 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
Leoo xD 0 Denunciar post Postado Julho 17, 2009 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
Beraldo 864 Denunciar post Postado Julho 17, 2009 execute a consulta assim: $sql = mysql_query($qr1) or exit( mysql_error()); deve aparecer um erro na tela. Compartilhar este post Link para o post Compartilhar em outros sites
Leoo xD 0 Denunciar post Postado Julho 17, 2009 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
Alaerte Gabriel 662 Denunciar post Postado Julho 17, 2009 Debug: <?php print_r($_POST); ?> coloque no início do documento e veja o que você captura. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 17, 2009 no topo do script, coloque isto: ini_set('display_errors', 1); error_reporting( E_ALL ); isso deve exibir todos os erros da página Compartilhar este post Link para o post Compartilhar em outros sites
Leoo xD 0 Denunciar post Postado Julho 17, 2009 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
Beraldo 864 Denunciar post Postado Julho 17, 2009 http://www.php.net/mysql_num_rows Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Julho 17, 2009 USe o condicional IF juntamenteo com a função que o Beraldo passou acima. Compartilhar este post Link para o post Compartilhar em outros sites
Leoo xD 0 Denunciar post Postado Julho 17, 2009 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
Beraldo 864 Denunciar post Postado Julho 17, 2009 veja o link que postei. mysql_num_rows é uma função. você tem que passar o argumento da consulta e testar o retorno dela. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Julho 17, 2009 if(mysql_num_rows($var_da_consulta) > 0){ while(){ ... } }else{ echo 'Sem dados'; } Compartilhar este post Link para o post Compartilhar em outros sites
.:: Pegasus ::. 0 Denunciar post Postado Julho 17, 2009 if(mysql_num_rows($sql) == 0) { echo "Sem resultados"; } else { while($resultado = mysql_fetch......) // etc.. } Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Julho 17, 2009 Tanto faz amigo, evite postar coisa redundante. Compartilhar este post Link para o post Compartilhar em outros sites