Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

red_sonja

busca

Recommended Posts

bom pessoal agora a coisa tá começando a dar certo... :D o código que estou usando até agora é:

$pchave = $_POST['pchave'];$nome = $_POST['pchave'];$query = ("SELECT * FROM imagens WHERE pchave LIKE '%$pchave%' OR nome LIKE '%$nome%'");$query = mysql_query($query);if(mysql_num_rows($query) > 0){while ($registro = mysql_fetch_array($query, MYSQL_ASSOC)){echo $registro['nome'] . " " . $registro['pchave'] . " " . $registro['caminho'] . "<br>";}} else {echo "Não há resultados para esssa pesquisa na base de dados.No donut for you, baby.";}

tá ficando bom... só falta o seguinte: o campo pchave na db pode armazenar várias palavras. Um exemplo é:uma foto de uma mulher com uma menina no colo tem as palavras chave"mulher" "menina" "família" etc...quando eu quiser fazer uma busca por mais de uma palavra, por exemplo mulher famíliaele não retorna resultados... alguém me ajuda?Abraços - Um obrigada especial ao rodurma que me ajudou com o código acimavcs são muito legais http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae testei aqui e deu tudo certo.

 

Olha o código:

 

PHP [/tr][tr]

<?

 

$base = mysql_connect("localhost","usuario","senha");

mysql_select_db("test", $base);

 

$pchave = $_POST['pchave'];

 

$dividido = explode(" ", $pchave);

$num_de_pchave = count($dividido);

 

//Agora montado o sql

if ($num_de_pchave < 2){

$sql = "SELECT * FROM imagens WHERE pchave LIKE '%$pchave%'";

} else {

 

$sql = "SELECT * FROM imagens WHERE ";

for ($i=0;$i<$num_de_pchave;$i++){

if (($i+1) < $num_de_pchave){

$sql .= "pchave LIKE '%$dividido[$i]%' OR ";

 

} else {

$sql .= "pchave LIKE '%$dividido[$i]%'";

}

}

}

 

 

$qry = mysql_query($sql, $base);

 

$num_linhas = mysql_num_rows($qry);

 

if ($num_linhas <1){

echo "Nenhum registro retornado";

} else {

 

while($registro = mysql_fetch_array($qry, MYSQL_ASSOC)){

echo $registro['nome'] . " -- " . $registro['pchave'] . " -- " . $registro['caminho'] . "<br>";

}

} //erro estava aqui pois não tinha fechado o if acima e agora fechei hehe

 

?>

[/tr]

 

O erro que estava dando era que não tinha fechado o if

Agora é só colocar as palavras chaves no campo da busca que ele monta o SQL dinâmicamente.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.