Jump to content
gsilva23

Search Box para várias tabelas

Recommended Posts

gsilva23

Bom dia, é possivel fazer uma search box para várias tabelas sem especificar os columns names e os fields? Pelos exemplos que ví, todos têm os fields especificados e como o meu projeto pode ter diversas tabelas (tabelas essas criadas pelo utilizador (foi um pedido efetuado pela própria empresa)), não posso especificar os fields nem as columns pois não sei quais são.

Aguardo resposta a esta duvida,

Gonçalo Silva.

 

Edited by gsilva23

Share this post


Link to post
Share on other sites
tiago.f

Olá Gonçalo,

se não podes saber à partida o nome das colunas, terás que as obter a cada pedido.

Como não especificas o que estás a usar, fica aqui a documentção para mysqli:

  • https://stackoverflow.com/questions/4703111/list-all-tables-in-a-database-with-mysqli
  • https://stackoverflow.com/questions/4165195/mysql-query-to-get-column-names

Terás 1º que obter a lista das tabelas que existem na BD e depois, para cada tabela, obter a lista dos campos/colunas e para cada um desses campos, executar a pesquisa:

 

$tabelas = // obter todas as tabela

foreach ($tabelas as $tab) {
	$colunas = // obter todas as colunas da tabela $tab
	$where = '1=1';
	
	foreach ($colunas as $col) {
		$where = $where . " OR $col = '" .$valor_a_pesquisar . "'";
	}

	// executa o query
	//   select * from $tab where $where
	//
	// faz qq coisa com os registos encontrados
}

 

Algo deste género.

 

NOTAS:

- Este processo não me parece muito normal. Normalmente há uma definição do que é que se pode procurar, até porque depois terás de decidir o que mostrar (queais colunas) e como.

- Este metódo que indico não é nada eficiente e, num caso real, deverias ter algum mecanismo de cache que te permite fazer estas procuras mais rapidamente.

  • Vote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.