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

Duvida com logica


misterviralata

Pergunta

Ola Amigos!

Tenho duas tabelas, uma com o nome de Bairro e outra com o nome de Usuario. Na tabela Bairro tenho dois campos ID_BAIRRO e NOME_BAIRRO e na Tabela Usuario ID,NOME,BAIRRO e os seguintes registros:

Tabela BAIRRO
ID_BAIRRO, NOME_BAIRRO
1                    Campos verdes
2                    Rosolém
3                    Amanda
4                    São Pedro

Tabela Usuario
ID,NOME,       BAIRRO
1  João            1
2  Paulo           3
3 Maria            2
Criei uma busca com dois campos sendo um campo do tipo select e outro do tipo text
< select name=campo>
<option value=NOME>Busca pelo nome do usuario</option>
<option value=NOME_BAIRRO>Busca pelo Bairro</option>
</select>

<input type=text name=busca>
Para processar a busca
$campo=$_POST['campo'];
$busca=$_POST['busca'];

if($campo =="NOME_BAIRRO"){
$sql=mysql_query("SELECT * FROM BAIRRO WHERE $campo LIKE %$busca%");
$total=mysql_num_rows($sql);
$row=mysql_fetch_array($sql);
if($total !=0){
$completa="BAIRRO=$row['ID_BAIRRO'];
}
}else{
$completa="$campo LIKE %$busca%";
}

$sql=mysql_query("SELECT * FROM USUARIO WHERE $completa");
echo 'usuarios encontrados<p>';
while($linha=mysql_fetch_array($sql)){
echo $linha['Nome']."<br>';
}

Até aqui beleza!, Caso a busca seja pelo nome do usuario o script vai consultar a tabela usuario onde o campo nome é igual a palavra chave.

Caso a busca seja pelo bairro o script vai fazer uma busca na tabela Bairro e pegar o Id do resultado em seguida vai realizar a busca na tabela usuario onde o campo BAIRRO é igual ao ID enviando.

O Problema é caso a busca encontre mais de um resultado na Tabela Bairro?

Como devo fazer?

Pensei em fazer um while na consulta do bairro e colocar os resultados para ficar assim

$completa= (BAIRRO=1 OR BAIRRO=3 OR BAIRRO=5 etc ..)

mas não consegui amadurecer a ideia

se alguém puder me ajudar Agradeço!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
if($total !=0){
$completa="";
for($i=0;$i<$total;$i++)
{
$completa.="BAIRRO=".$row['ID_BAIRRO']." OR ";
$tam = strlen($completa);
}
$tam_final = $tam-3;
$completa_final = substr($completa,0,$tam_final);
}
}else{
$completa="$campo LIKE %$busca%";
}

$sql=mysql_query("SELECT * FROM USUARIO WHERE $completa_final");
echo 'usuarios encontrados<p>';
while($linha=mysql_fetch_array($sql)){
echo $linha['Nome']."<br>';
}

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...