Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou com uma pequena duvida...
Fiz um select no banco apartir de um valor recebido do textfiel(form), FUNCIONA ATÈ AQUI
mas eu quero que ele mostre todas as linhas que contem a palavra recebida no textfield..
Por exemplo: nome_completo(textfield) = Carlos
echo > Todas os nomes que tenham Carlos, mesmo no sobrenome..
entenderam??
meu codigo:
<input name="erro" type="text" id="erro" size="50" maxlength="50" />
include "config.php";
##################### Pesquisa o textfield ####################################
$erro_pesquisa = $_POST['erro'];
$sql_erro = mysql_query("SELECT * FROM base_consultas WHERE erro = '$erro_pesquisa' LIKE '%$erro_pesquisa%' ");
while($linha = mysql_fetch_array($sql_erro)){
$erro = $linha['erro'];
$id = $linha['id'];
echo "$erro";
Acredito que utilize o Like na query sql.. mas nao tenho certeza
Olá Cyberona,
sua idéia está correta, o LIKE vai atender, apenas verifique o formato abaixo.
Como o nome do campo que cita não coincide com o que está no script, o erro pode estar aí (ou o script é apenas um exemplo?). Você fala que o textfield chama-se nome_completo, mas esse campo não aparece na sua busca:
Exemplo 1 - nome e sobrenome no campo 'nome_completo':
$erro_pesquisa = $_POST['nome_completo'];
$sql_erro = mysql_query("SELECT nome_completo FROM base_consultas WHERE nome_completo LIKE '%$erro_pesquisa'");
Exemplo 2 - Se nome e sobrenome estiverem em campos separados, ou a busca deve se dar em dois campos diferentes:
$erro_pesquisa = $_POST['nome_completo'];
$sql_erro = mysql_query("SELECT nome_completo, campo2 FROM base_consultas WHERE (nome_completo LIKE '%$erro_pesquisa') OR (campo2 LIKE '%$erro_pesquisa')");>
Antes de irmos ao seu problema, me sinto na obrigação de dizer que o seu código está feio. Dá pra melhorar isso aí e ganhar qualidade no mesmo, ok?
Enfim, à sua dúvida: há 2 maneiras de fazer isso. Uma é com o like, como você mesmo disse. Outra é se a coluna nome é diferente da coluna sobrenome.
Para o segundo caso, pode-se fazer o seguinte:
SELECT * FROM tabela WHERE nome = $nome
E então, no PHP, imprimir o sobrenome de cada um dos resultados.
O like correto para se procurar no banco, para o seu caso, é exatamente o que está no seu código, ou seja, %$variavel% (se você está fazendo assim, qual o problema?)
Antes de mais nada, obrigado pela sua ajuda..
Porque você achou que o codigo esta feio, oq tem de errado (estou aprendendo, que saber os erros que cometo)??
Bom o sobre a coluna nome_completo foi apenas um exemplo..
Minha coluna se chama "erro" > vou cadastrar um erro qualquer, ex: "impressora com defeito".
quando eu colocar o nome "impressora" ou "defeito" no textfield. ele tem que buscar essa linha e todas que tiverem esses nomes no banco..
>
Olá Cyberona,
sua idéia está correta, o LIKE vai atender, apenas verifique o formato abaixo.
Como o nome do campo que cita não coincide com o que está no script, o erro pode estar aí (ou o script é apenas um exemplo?). Você fala que o textfield chama-se nome_completo, mas esse campo não aparece na sua busca:
Exemplo 1 - nome e sobrenome no campo 'nome_completo':
$erro_pesquisa = $_POST['nome_completo'];
$sql_erro = mysql_query("SELECT nome_completo FROM base_consultas WHERE nome_completo LIKE '%$erro_pesquisa'");
Exemplo 2 - Se nome e sobrenome estiverem em campos separados, ou a busca deve se dar em dois campos diferentes:
$erro_pesquisa = $_POST['nome_completo'];
$sql_erro = mysql_query("SELECT nome_completo, campo2 FROM base_consultas WHERE (nome_completo LIKE '%$erro_pesquisa') OR (campo2 LIKE '%$erro_pesquisa')");
lusigmas,
fiz como você fez no exemplo 1 e deu certo, funcionou:
$sql_erro = mysql_query("SELECT * FROM base_consultas WHERE erro LIKE '%$erro_pesquisa%' ");
Ta perfeito.. Obrigadoooo!!
Resolvido
Antes de irmos ao seu problema, me sinto na obrigação de dizer que o seu código está feio. Dá pra melhorar isso aí e ganhar qualidade no mesmo, ok?
Enfim, à sua dúvida: há 2 maneiras de fazer isso. Uma é com o like, como você mesmo disse. Outra é se a coluna nome é diferente da coluna sobrenome.
Para o segundo caso, pode-se fazer o seguinte:
SELECT * FROM
tabelaWHEREnome= $nomeE então, no PHP, imprimir o sobrenome de cada um dos resultados.
O like correto para se procurar no banco, para o seu caso, é exatamente o que está no seu código, ou seja, %$variavel% (se você está fazendo assim, qual o problema?)