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

Problema no envio de parâmetro em busca


Adriel d. 0. bem-vindo

Pergunta

Poderiam verificar para corrigir?

<form name="frmBusca" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar" >
    <input type="text" name="palavra" />
    <input type="submit" value="Buscar" />

   <-- <input type="hidden" value="buscar"> -->

</form> 

<?php
$conn = @mysql_connect("localhost", "root", "") or die("Não foi possível a conexão com o Banco");
$db = @mysql_select_db("busca", $conn) or die("Não foi possível selecionar o Banco");
 
$a = $_POST['a']; <-- não está achando o parâmetro -->
 
if ($a == "buscar") {
 
    $palavra = trim($_POST['palavra']);
 
    $sql = mysql_query("SELECT * FROM produtos WHERE nome LIKE '".$palavra."' ORDER BY nome");
 
    $numRegistros = mysql_num_rows($sql);
 
    if ($numRegistros != 0) {
        while ($produto = mysql_fetch_object($sql)) {
            echo $produto->nome ;
        }
    } else {
        echo "Nenhum produto foi encontrado com o nome ".$palavra."";
    }
}
?>     

Esse é um modelo ampliado que achei para usar.

 

AVISO: A área de Tutoriais é somente para códigos prontos, e não para dúvidas.

Editado por Jhonas
Forum correto para postar suas dúvidas
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

isso me ajuda com metade do problema, a versão do php é 5.5(para tcc);

ficou assim:

<form name="frmBusca" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar">
    <input type="text" name="palavra" />
    <input type="submit" value="Buscar" />
</form>
 
<?php
$conn = @mysql_connect("localhost", "root", "") or die("Não foi possível a conexão com o Banco");
$db = @mysql_select_db("busca", $conn) or die("Não foi possível selecionar o Banco");

if (isset($_POST['a'])){
 if ($_POST['a']!=null){
    $acao = $_POST['a'];

  if ($acao == "buscar") {
 
    $palavra = trim($_POST['palavra']);
 
    $sql = mysql_query("SELECT * FROM produtos WHERE nome LIKE '".$palavra."' ORDER BY nome");
 
    $numRegistros = mysql_num_rows($sql);
 
    if ($numRegistros != 0) {
        while ($produto = mysql_fetch_object($sql)) {
            echo $produto->nome ;
        }
    } else {
        echo "Nenhum produto foi encontrado com o nome ".$palavra."";
    }
  }
 }
}
?>     

agora não está retornando resultados.

Link para o comentário
Compartilhar em outros sites

  • 0

Remova aqueles @ dos mysql_*
Eles são supressores de erros. Assim, se houver algum erro, você não será informado. Não saberá qual é, e não poderá resolver.

acrescente isso depois de executar a query:
$sql = mysql_query("SELECT * FROM produtos WHERE nome LIKE '".$palavra."' ORDER BY nome") or die(mysql_error());

As extensões mysql_* estão obsoletas e já faz uns 5 anos que o php recomenda não utilizar mais.
Sugiro que use mysqli
Veja: http://php.net/manual/pt_BR/function.mysql-error.php
mysql_.thumb.jpg.6e341f2068d2753158bc1dc1d71ee87a.jpg

Link para o comentário
Compartilhar em outros sites

  • 0
Em ‎23‎/‎07‎/‎2018 at 15:31, lowys disse:

Remova aqueles @ dos mysql_*
Eles são supressores de erros. Assim, se houver algum erro, você não será informado. Não saberá qual é, e não poderá resolver.

acrescente isso depois de executar a query:
$sql = mysql_query("SELECT * FROM produtos WHERE nome LIKE '".$palavra."' ORDER BY nome") or die(mysql_error());

As extensões mysql_* estão obsoletas e já faz uns 5 anos que o php recomenda não utilizar mais.
Sugiro que use mysqli
Veja: http://php.net/manual/pt_BR/function.mysql-error.php
mysql_.thumb.jpg.6e341f2068d2753158bc1dc1d71ee87a.jpg

$conn = mysqli_connect("localhost", "root", "") or die("Não foi possível a conexão com o Banco");
$db = mysqli_select_db($conn,"busca") or die("Não foi possível selecionar o Banco");

if (isset($_POST['a'])){
 if ($_POST['a']!=null){
    $acao = $_POST['a'];

  if ($acao == "buscar") {
    
    $palavra = trim($_POST['palavra']);
 
    $sql = mysqli_query($db,"SELECT * FROM produtos WHERE nome LIKE '".$palavra."' ORDER BY nome") or die(mysql_error());
    $numRegistros = mysqli_num_rows($sql);
 
    if ($numRegistros != 0) {
        while ($produto = mysqli_fetch_object($sql)) {
            echo $produto->nome ;
        }
    } else {
        echo "Nenhum produto foi encontrado com o nome ".$palavra."";
    }
  }
 }
}
?>

Agora nescessito corrigir os problemas de sintaxe.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!
Conecte ao database assim:
 

<?php

// variáveis para conexão com banco de dados online
$host = 'seu-server';
$user = 'seu-user';
$password = 'sua-senha';
$Database = 'seu-database';

// estabelecer conexão com o mysql
$sqli = new mysqli($host, $user, $password);

// verificar se houve erro na conexão
if ($sqli->connect_error) {
   // se houve erro, mostra erro na tela
   die("<p><b>Erro!</b> Falha na conexão:<br>$sqli->connect_error</p>");
}
// alterar o tipo de codificação da conexão com o banco de dados,  para utf8
if (!$sqli->set_charset('utf8')) {
   die("<p>O charset não é utf8: $sqli->error</p>");
}

// se não abrir o banco de dados para trabalhar
if (!$sqli->select_db($Database)) {
   die("<p class='error'><b>Erro!</b> Não foi possível abrir o banco de dados: <b>$Database</b><br>$sqli->error</p>");
}

// Escape a string
$palavra = $sqli->real_escape_string(trim($_POST['palavra']));

Defina sua query de busca:

$query = "SELECT * FROM produtos WHERE nome LIKE '%$palavra%' ORDER BY nome";

E execute assim:

$result = $sqli->query($query);
// verificar se houve falha na execução da query:
if ($sqli->error) {
         // mostrar na tela a falha ocorrida:
        die(<p class="error">Falha durante a busca, chefe!<br> ' . $sqli->error . '</p>');
    } elseif ($result->num_rows) {
        // se não houve falha alguma e há algum resultado, mostra o resultado na tela:
        echo  '<p class="ok">Inserção realizada com sucesso, chefe!</p>';
       echo '<pre>';
        print_r($result->fetch_all(MYSQLI_ASSOC));
       echo '</pre>';

    } else { // se não há resultado algum:
      echo  '<p class="warning">Nenhum resultado encontrado para o termo: '.$palavra.', chefe!</p>';
   }

 

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