Jump to content
stefany nogueira

Não consigo gerar os resultados

Recommended Posts

Não estou conseguindo gerar os resultados da busca com filtro, 

Segue abaixo index e results:

Index:

<?php
    include "conexao.php"
?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml1" lang="pt-br" xml:lang="pt-br">

    <head>
        <meta charset="utf-8">
        <title> Busca </title>
    </head>

    <body>
    <form action="results" method="post">

    <select name = convênios>
        <option value="">Selecione o convênio</option>
        <?php
            $convenios = "SELECT * FROM convenios";
            $qrconvenio = mysqli_query($conexao, $convenios);
            while ($row_convenios = mysqli_fetch_assoc($qrconvenio)) { 
        ?>
                <option value = "<?php echo utf8_encode($row_convenios ['id_convenio'])?>" > <?php echo utf8_encode($row_convenios ['Nome']) ?></option>
        <?php
        }
        ?>
    </select>
    <select name = Estado>
        <option value="">Selecione o estado</option>
        <?php
            $estado = "SELECT * FROM estado";
            $qrestado = mysqli_query($conexao, $estado);
            while ($row_estado = mysqli_fetch_assoc($qrestado)) { 
        ?>
                <option value = "<?php echo utf8_encode($row_estado ['id_estado'])?>" > <?php echo utf8_encode($row_estado ['Nome']) ?></option>
        <?php
        }
        ?>
    </select>
    <select name = Cidade>
        <option value="">Selecione a cidade</option>
        <?php
            $cidade = "SELECT * FROM cidade";
            $qrcidade = mysqli_query($conexao, $cidade);
            while ($row_cidade = mysqli_fetch_assoc($qrcidade)) { 
        ?>
                <option value = "<?php echo utf8_encode($row_cidade ['id_cidade'])?>" > <?php echo utf8_encode($row_cidade ['Nome']) ?></option>
        <?php
        }
        ?>
    </select>
    <select name = Especialidade>
        <option value="">Selecione a especialidade</option>
        <?php
            $especialidade = "SELECT * FROM especialidades";
            $qrespecialidade = mysqli_query($conexao, $especialidade);
            while ($row_especialidade = mysqli_fetch_assoc($qrespecialidade)) { 
        ?>
                <option value = "<?php echo utf8_encode($row_especialidade ['id_especialidade'])?>" > <?php echo utf8_encode($row_especialidade ['Nome']) ?></option>
        <?php
        }
        ?>
    </select>
    <input type="hidden" name="acao" value="buscar"/>
    <input type="submit" value="Buscar"/>
    </form>
    
</body>

 

 

Results:

 

<?php
    include "conexao.php"
?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml1" lang="pt-br" xml:lang="pt-br">

    <head>
        <meta charset="utf-8">
        <title> Busca </title>
    </head>

<body>
<?php
    $convenios = $_POST ['convenios'];
    $estado = $_POST ['estado'];
    $cidade = $_POST ['ciadade'];
    $especialidade = $_POST ['especilidades'];
    $profissional = "SELECT * FROM profissional WHERE Nome LIKE 'id_convenio' AND 'id_estado' AND 'id_cidade' AND 'id_especialidade'";
    $qrprofissional = mysqli_query ($conexao, $profissional);
    $row = mysqli_num_rows ($qrprofissional);
    if ($row > 0 ) {
        while ($linha = mysql_fetch_array($qrprofissional)) {
            $nome = $linha ['Nome'];
            $endereço = $linha ['Endereço'];
            $telefone = $linha ['Telefone'];
            echo "<strong>Profissional: </strong>".@$nome;
            echo "<br></br>";
            echo "<strong>Endereço: </strong>".@$endereço;
            echo "<br></br>";
            echo "<strong>Telefone: </strong>".@$telefone;
            echo "<br></br>";
        }
    } else {
        echo "Não foi encontrado profissionais";

    }

?>


</body>

 

Share this post


Link to post
Share on other sites

@stefany nogueira vamos lá.

 

Existem alguns erros no seu código.

 

Os atributos NAME eu recomendo você a colocar todos sempre entre aspas e NUNCA usar acentuação, exatamente por causa desses tipos de erros, fica completamente complicado achar um erro devido a problemas de acentuação.

 

Então assim:: 

<select name = convênios> eu recomendo isso  <select name="convenios">

E o motivo disso é porque no seu POST você pegou convenio SEM o ^ gerando 1 erro. $convenios = $_POST ['convenios'];

<select name = Especialidade> eu recomendo isso <select name="especialidade">

Existe diferenças entre MAIUSCULO e MINUSCULO, então Especialidade é diferente de especialidade, mantenha um padrão de nome e eu sugiro TUDO sempre em minusculo e SEMPRE sem acentuação.

 

Outro erro é que você faz a recepção das variáveis enviadas pelo FORMULÁRIO via método POST e no seu SELECT você não as utiliza de forma correta, onde você coloca ID_CONVENIO você precisa colocar a variável que pegou o conteudo do POST['convenio'] que é $convenio, então o LIKE precisa ter '%".$convenio."%' <-- exatamente assim, com aspas simples, porcentagem aspas duplas ponto variável php ponto aspas duplas porcentagem aspas simples.

 

Existe um erro extremamente GRAVE na sua clausula SQL.

Vou te fazer a pergunta e em seguida uma sugestão do que eu acho que deve ser.

 

O que essa clausula deveria buscar como CRITÉRIO?

$profissional = "SELECT * FROM profissional WHERE Nome LIKE 'id_convenio' AND 'id_estado' AND 'id_cidade' AND 'id_especialidade'";

 

Explicando o que esse comando FAZ exatamente.

 

SELECIONA (TUDO) DA TABELA profissional ONDE nome (TEM COMO CONTEUDO SIMILAR) 'id_convenio' E' 'id_estado' E 'id_cidade' E 'id_especialidade',

 

Então explicando o porque eu marquei o E em vermelho, VOCÊ TEM UM NOME (nome que eu não sei do que) que tenha como conteudo por exemplo, MEDICO SP SÃO PAULO PSICOLOGO ???? Porque é isso que você está fazendo.

 

Mais um DETALHE, o comando LIKE precisa buscar uma STRING com % ou antes da string ou depois da string ou antes e depois da string, veja como funciona:

 

Expressão Resultado
LIKE 'Juca%' Qualquer string que iniciem com Juca.
LIKE '%Silva' Qualquer string que terminem com Silva.
LIKE '%Santos%' Qualquer string que tenha Santos em qualquer posição.

 

Então eu acho que o que você quer é buscar as informações dos profissionais que tenham como caracteristicas, aceitar um tal convênio, que estejam dentro de um estado/cidade e que tenham a especialização informada, neste caso o seu select precisa respeitar a seguinte clausula.

 

$profissional = "SELECT * FROM profissional WHERE convenio LIKE '%".$convenio."%' AND estado LIKE '%".$estado."%' AND cidade LIKE '%".$cidade."%' AND especialidade LIKE '%".$especialidade."%';

 

Explicando o que o select acima faz.

 

SELECIONA (TUDO) DA TABELA PROFISSIONAL ONDE CONVENIO TENHA CONTEUDO %nomeconvenio% E ESTADO TENHA CONTEUDO %nomeestado% E CIDADE TENHA CONTEUDO %nomecidade% E ESPECIALIDADE TENHA CONTEUDO %nomeespecialidade%

 

Onde todo o conteudo entre %% são exatamente os valores selecionados no seu combobox passados via POST[''] que são atribuidas as variáveis PHP $nomevar que você colocou aqui:

 

    $convenios = $_POST ['convenios'];
    $estado = $_POST ['estado'];
    $cidade = $_POST ['ciadade'];
    $especialidade = $_POST ['especilidades'];

 

Corriga esses erros e veja se funciona ou se pelo menos aparece algo, uma dica que eu dou é se os comandos SQL não estão funcionando, após declarar a variável SQL de um ECHO nela, pegue o que ira aparecer na tela e execute dentro do banco.

 

Assim:

$profissional = "SELECT * FROM profissional WHERE Nome LIKE 'id_convenio' AND 'id_estado' AND 'id_cidade' AND 'id_especialidade'";

 

echo $profissional;

 

Na tela vai aparecer o comando, copie e cole no banco de dados e execute para ver se traz o que você quer e se realmente o comando que você montou funciona, pois quando o comando não traz o que deveria é porque você montou errado o comando.

 

Espero ter ajudado.

 

Att.

Felipe Coutinho

Share this post


Link to post
Share on other sites

Agradeço a ajuda, sim confirmei com pelo banco e esta correta o select, porém continua não puxando o resultado e apresenta o erro:

 

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\wamp64\www\busca\results.php on line 27
Call Stack
# Time Memory Function Location
1 0.0005 404464 {main}( ) ...\results.php:0
2 0.0058 420504 mysqli_num_rows ( ) ...\results.php:27

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By violin101
      Caros amigos, membros do grupo, saudações...
       
      Se postei minha dúvida na opção errada peço desculpa.
       
      Estou com uma pequena dúvida.
       
      Quando cadastro usuários na MySql utilizo PASSWORD_HASH para criptografar a Senha.
       
      Estou montando uma rotina, onde o usuário que esqueceu sua senha o sistema envia por e-mail a sua senha, mas me deparei com um pequeno problema.
       
      a senha criada pelo usuário, como por exemplo: 12345678 usando o PASSWORD_HASH fica desta forma: $2y$10$ukBckA5D2aSApHwv/GOKi.P/drP.jwAHOK/9SmWIgRxLUE.x9z.ZK
       
      Quando tento enviar a senha para o usuário vai conforme acima, preciso enviar apenas 12345678. Como consigo descriptografar o PASSWORD_HASH ?
       
      Grato,
       
      Cesar
    • By elisandrodceza
      Alguma ideia para pesquisar os $id recebidos por get em um arquivo diferente ? como se percebe no código funcional a baixo, os $id estão duplicados para funções diferente. Quero adicionar eles em outro arquivo para uma melhor organização com as variáveis $id e $client,  mas de uma maneira que possa pesquisar tanto qual é a $id e o $client para ser informado por email quando o client ler o qrcode, quanto se a $id está na lista para ser redirecionado.
       
       
      ARQUIVO auth_code.php
       
      <?php
          $id = $_GET['id'];
          $ip = $_SERVER['REMOTE_ADDR'];
          $browser = $_SERVER['HTTP_USER_AGENT'];
          $to = "suporte@eatech.inf.br";
          $success = false;

              if ($id == '2623F52846F8A03DA4ADFA9392486807') $client = "Card Contato";
              if ($id == '2BDBDDA17456A1060E156BE7A487FC') $client = "Client 1";
              if ($id == 'E7EA229948A4997C2F72219D6A2764') $client = "Client 2";
              if ($id == '07118879907903166B2C3BE7408EFD') $client = "Client 3";
              if ($id == 'FED09C7CC40ACD77A0BDEA57E894A3') $client = "Client 4";
              if ($id == 'C042D3187B52E87D6E6196567101EF') $client = "Client 5";
              if ($id == '7DCD0215BEC8AF587AD886E407A485') $client = "Client 6";
       
          $messagem = "Cliente: $client<br><br>ID: $id<br><br>IP: $ip<br><br>Browser: $browser"; 
          $assunto = "qrCode digitalizado";
          $headers = "MIME-Version: 1.0\n";
          $headers .= "Content-type: text/html; charset=iso-8859-1\n";
          $headers .= "From: $client\n";
          
          $success = mail($to, $assunto, $messagem, $headers);
          
          if ($id == '2623F52846F8A03DA4ADFA9392486807')
              { header('Location: download/contato.vcf');}
       
          else
              if (

              $id == '2BDBDDA17456A1060E156BE7A487FC' # Client 1
              or $id == 'E7EA229948A4997C2F72219D6A2764' # Client 2
              or $id == '07118879907903166B2C3BE7408EFD' # Client 3
              or $id == 'FED09C7CC40ACD77A0BDEA57E894A3' # Client 4
              or $id == 'C042D3187B52E87D6E6196567101EF' # Client 5
              or $id == '7DCD0215BEC8AF587AD886E407A485' # Client 6
              )
              { header('Location: download/index.php?id=' . $id. '.pdf');}
       
          else
              { echo "<script>alert('Este qrCode ainda não está cadastrado no sistema, tente novamente mais tarde!');history.go(-1) </script>";}
      ?>
    • By rfael023
      Bom dia, Pessoal.

      Sou iniciante em PHP e estou trabalhando na integração de uma API. Estou tendo um pouco de dificuldade em índices de um array, segue abaixo o trecho do código:


       
      1 2 3 4 5 6 7 foreach ($Lista as $SMS) {           foreach ($SMS as $key => $value) {                   echo "{$key} : {$value}\n";         } }

      O resultado é o seguinte:

      telefone : 5519333333333
      id : 921

      telefone : 5519344444444
      id : 922

      telefone : 5519555555555
      id : 923

      Ou seja, eu tenho vários arrays com 2 posições dentro de um único array.

      Eu preciso jogar o ID e o Telefone em variáveis, porém ele não está entendendo meu índice:
       
      1 2 3 4 $sms->setTo($SMS['telefone']); echo $sms->getTo(); $sms->setId($SMS['id']); echo $sms->getId();

      Resultado:

      5,52E+12
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,52E+12
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,51198E+12
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,51198E+12
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,53176E+11
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,53176E+11
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42

      Alguém consegue me ajudar?

      Agradeço, desde já!
    • By z101
      Sou iniciante, nunca usei PHP na vida e preciso concluir uma tabela de distribuição de frequencia e o polígono de um array, o pouco que vi é muito confuso, alguém aqui já teve que fazer isso antes? 
       
       
    • By MatheusSmidt
      Bom dia,
      Estou precisando de ajuda com o código do formulário de um sistema de cadastro.
      A página é para consulta mas tem a possibilidade de adicionar ou retirar "faltas" de cada profissional cadastrado através de botões simples e também apagar um ou múltiplos profissionais da lista, através de checkbox..
      Essa ações atualizam o banco de dados e já retornam na tela automaticamente.
      O problema é que não fui eu que estruturei o código PHP e não consigo aliar as duas funções que falei anteriormente. Quando consigo fazer funcionar o sistema de adição e redução de faltas, consigo apenas excluir o último nome da lista, mesmo selecionando vários. E quando consigo resolver a parte de excluir vários nomes, não consigo adicionar e reduzir o número de faltas.
       
      Provavelmente é um problema no "WHILE" ou na abertura e fechamento de formulário. Porém não consegui resolver.
      Se alguém conseguir resolver seria ótimo.
      Agradeço desde já. Em anexo envio um print da página para melhor entendimento.
       
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.