Formulario de Busca não retorna erro

Enviada por Carlos 
Carlos
Formulario de Busca não retorna erro
30 de October de 2017 às 05:28AM
Pessoal,estou com este formulario de busca para uma página no wordpress, mas está com 2 problemas:
1- Ao carregar a página, ele lista todos os dados da tabela. Preciso que inicie em branco
2- Quando busco um termo que não existe no banco, ele não retorna a mensagem de erro e fica em branco.
Quando busco um termo que já existe, ele funciona corretamente.

<html>
<head>
<title>Recebendo dados do Formulário</title>
</head>
<body>
<form method="post" >
Digite seu nome:<br />
<input type="text" name="nome" />
<input type="submit" value="Enviar" />
</form>
</body>
</html>

<?php
$nome = $_POST['nome'];


if (is_user_logged_in()):

global $wpdb;


$customers = $wpdb->get_results("SELECT * FROM wp_clientes where `Nome_Cliente` LIKE '%".$nome."%' ");

if($customers >= 1){
echo "<table>";
foreach($customers as $customer){
echo "<tr>";
echo "<td>".$customer->Nome_Cliente."</td>";
echo "<td>".$customer->Email_Proprietario."</td>";
echo "<td>".$customer->Nome_Empresa."</td>";
echo "<td>".$customer->Pagamentos."</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "Não encontrado!";
}
else:
echo "Sorry, only registered users can view this information";
endif;




?>
Jayme A. C. Gimenez
Re: Formulario de Busca não retorna erro
30 de October de 2017 às 12:13PM
Tanto o formulário quanto a query estão no mesmo arquivo, na mesma "página"?
Carlos
Re: Formulario de Busca não retorna erro
30 de October de 2017 às 01:30PM
Jayme, obrigado pela sua interação.
Sim, estão na mesma página.
Jayme A. C. Gimenez
Re: Formulario de Busca não retorna erro
30 de October de 2017 às 02:06PM
Bom, então, parece ser por isso que mostra o bd inteiro quando a página é acessada. Se $nome vem em branco, '%".$nome."%' retorna todas linhas da tabela.

Você tem que colocar o form em um arquivo e a busca em outro, ou criar ifs para evitar que a busca seja feita quando o form é acessado.
Carlos
Re: Formulario de Busca não retorna erro
30 de October de 2017 às 02:58PM
Entendi.
E sobre: 2- Quando busco um termo que não existe no banco, ele não retorna a mensagem de erro e fica em branco.
Pode me ajudar?
Jayme A. C. Gimenez
Re: Formulario de Busca não retorna erro
01 de November de 2017 às 12:52PM
Eu penso que o problema está aqui: if($customers >= 1) .

Pois $customers é um array, uma matriz. Como será que o PHP interpreta esse >= 1 quando se trata de array? É meio sem sentido.

Tente usar o count ( http://php.net/manual/pt_BR/function.count.php ) para contar os elementos do array $customers. Veja se funcionaria.

Outro jeito de fazer isso que você quer é contar os resultados que chegam da query. Veja esse link: http://php.net/manual/pt_BR/function.mysql-num-rows.php .
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.