Ir para conteúdo

Arquivado

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

fideles

Conexão com vários bancos de dados

Recommended Posts

E ai galera do fórum, tudo em cima ?

 

 

Gostaria de tirar uma duvida com a galera aqui... É possível chamar mais de um banco de dados numa consulta PHP ?

 

EX:

$sql = mysql_query("SELECT * FROM user1, user2, user3, user4, user5");
Consigo chamar tipo, 100 bancos de dados nesta consulta? Se não, existe alguma tipo de codigo PHP que chama todos de uma vez, em vez de ficar colocando o nome do banco, (user1, user2, user3, user4, user5....... )

 

 

Obrigado pela ajuda de todos....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro que o FROM especifica a tabela e não o usuário. Segundo, conforme consta no manual, não, é possível realizar a consulta apenas especificando um banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o ESerra disse o from serve para especificar tabela e não banco.

Dê uma pesquisada no blog do Thiago Belem pois ele explica isso, repliquei essa explicação abaixo.

<?php
  // Primeiro servidor
  $banco1 = mysql_connect('127.0.0.1', 'root', '');
  mysql_select_db('banco', $banco1);
  // Segundo servidor
  $banco2 = mysql_connect('127.0.0.2', 'root', '');
  mysql_select_db('banco', $banco2);
  // Terceiro servidor
  $banco3 = mysql_connect('127.0.0.3', 'root', '');
  mysql_select_db('banco', $banco3);
  // ...
  // Consulta no 1° banco
  $sql1 = mysql_query('SELECT * FROM `noticias`', $banco1);
  // ... processa os dados ...
  // Consulta no 2° banco
  $sql2 = mysql_query('SELECT * FROM `noticias`', $banco2);
  // ... processa os dados ...
  // Consulta no 3° banco
  $sql3 = mysql_query('SELECT * FROM `noticias`', $banco3);
  // ... processa os dados ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, como o Electronic disse, fiz confusão em dizer banco,

 

Seria tabelas. Digamos que tenho 100 tabelas user1 ao user100, gostaria em vez de ficar colocando o nome das tabela na consulta do PHP colocar algo que chame todas essas 100 de uma vez,

Compartilhar este post


Link para o post
Compartilhar em outros sites

As 100 tabelas teriam os mesmos campos? Se for sim a resposta provavelmente você tem um problema na modelagem. Caso contrário, elas tem relacionamentos entre si? Se sim use joins, se a resposta for não, você pode montar um laço para criar uma variável com os nomes e jogar isto na query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, como o Electronic disse, fiz confusão em dizer banco,

 

Seria tabelas. Digamos que tenho 100 tabelas user1 ao user100, gostaria em vez de ficar colocando o nome das tabela na consulta do PHP colocar algo que chame todas essas 100 de uma vez,

Então vamos lá, seja mais preciso na sua informação.

Essas consultas são consultas simples ?
As tabelas tem ligações entre si e você quer usar isso para compará-las?
Todas essas tabelas estão no mesmo banco?

A solução para isso (gato) no Oracle e MS SQL Server seria uma subquery no from usando o Show Tables mas no mysql nunca fiz (esse gato) você precisa ver se funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço muito a atenção de todos.

 

Tenho um site onde cada usuário tem seu painel de controle, então criei as tabelas para cada usuário dentro do meu banco de dados (um único banco de dados) e todas as tabelas são iguais.

Ex:

A tabela user1 tem as seguintes informações -> id, nome, apelido, cel, endereço, foto

 

As demais tabelas tem as mesmas informações que a tabela user1.

 

Então cada usuário altera suas informações do jeito que quiser, sem eu me preocupar se vai alterar algo na tabela de alguém, por isso tenho esse tanto de tabelas,

 

Depois tenho uma pagina oculta, somente para mim, onde exibo todos os usuários, com todas as informações que quero.

 

Então para não ficar colocando na consulta, user1, user2, user3 e por ai vai, gostaria de algo que chamasse todas de uma vez. Acho que desta vez fui mais claro ne, ou não ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço muito a atenção de todos.

 

Tenho um site onde cada usuário tem seu painel de controle, então criei as tabelas para cada usuário dentro do meu banco de dados (um único banco de dados) e todas as tabelas são iguais.

Ex:

A tabela user1 tem as seguintes informações -> id, nome, apelido, cel, endereço, foto

 

As demais tabelas tem as mesmas informações que a tabela user1.

 

Então cada usuário altera suas informações do jeito que quiser, sem eu me preocupar se vai alterar algo na tabela de alguém, por isso tenho esse tanto de tabelas,

 

Depois tenho uma pagina oculta, somente para mim, onde exibo todos os usuários, com todas as informações que quero.

 

Então para não ficar colocando na consulta, user1, user2, user3 e por ai vai, gostaria de algo que chamasse todas de uma vez. Acho que desta vez fui mais claro ne, ou não ?

Só uma sugestão, entendo que o site esteja pronto e rodando por isso essa sugestão será um pouco impossível de colocar em prática mas se puder mude essa estrutura porque se você tiver 1 milhão de usuários terá 1 milhão de tabelas, organize seus usuários numa única tabela, tem como criar tabelas auxiliares mas se no final você tiver 2 ou 4 tabelas e 1 milhão de registros nela será melhor .

 

Ademais isso você entendeu minha logica acima quando sugeri uma subquery no from pegando o nome das tabelas com o show tables ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

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