• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

6 mensagens neste tópico

Boas!

Eu gostaria de fazer como posso fazer o seguinte...

Tenho várias tabelas, do género, tradição, comida, história, noticias, turismo, etc...

E queria fazer uma pesquisa, em que por exemplo se pesquisássemos, 'Lisboa' ele fosse a toda as tabelas, aos campos referidos no select verificar se existe a palavra lisboa...

SELECT codigo,descr,nome_loc FROM comer WHERE nome_loc LIKE '%lisboa%' and descr LIKE '%lisboa%'

SELECT codigo,titulo,descr FROM tradicao WHERE descr LIKE '%lisboa%' and titulo LIKE '%lisboa%'

E mais algumas tabelas...

Gostaria de saber como posso juntar todos num mesmo select em vez de tar a fazer um a um... o código fica mais pequeno e mais perceptível...

do genero (SELECT codigo,descr,nome_loc FROM comer WHERE nome_loc LIKE '%lisboa%' and descr LIKE '%lisboa%') AND (SELECT codigo,titulo,descr FROM tradicao WHERE descr LIKE '%lisboa%' and titulo LIKE '%lisboa%') AND ....

Cumps!

GreyBack

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sem querer estar a dizer nenhuma baboseira, acho que não, porque não existem campos em comum nas tabelas para te gerar um resultado único.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tal como o softclean falou o mais correcto é colocares um campo comum em todas as tabelas, por exemplo "Cidade" e depois é só adicionares as cláusula WHERE.

Por exemplo:

SELECT * FROM tabela1, tabela2, tabela3 WHERE Cidade='Lisboa'

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

do genero

Tal como o softclean falou o mais correcto é colocares um campo comum em todas as tabelas, por exemplo "Cidade" e depois é só adicionares as cláusula WHERE.

Por exemplo:

SELECT * FROM tabela1, tabela2, tabela3 WHERE Cidade='Lisboa'

do genero...

select tabela1.codigo,tabela1.descr,tabela2.nome_loc FROM tabela1,tabela2 WHERE tabela2.nome_loc LIKE '%lisboa%' and tabela1.descr LIKE '%lisboa%'

assim dá?

é que os campos das tabelas são diferentes :X

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É preferível fazeres vários SELECT's uma vez que não há relacionamento entre as tabelas...

Algo num ciclo por exemplo, tenta adaptar ao teu modelo:

$tabelas = array('tabela1', 'tabela2', '...');
$campos = array('a', 'b', 'z');

for ($i = 0; $i < count($tabelas); $i++) {
  mysql_query("select * from {$tabelas[$i]} where {$campos[$i]}='%Lisboa%'");

  echo "Resultados para a tabela {$tabelas[$i]}:";
  // saida de resultados
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para isso basta fazer uma tabela bem feita senão não consegues obter todas as informações desejadas dela...

Ps: Aconselhava-te a elaborar melhor a tua base de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora