Como criar uma tabela html,? com resultados do SQL -consultar externa - db (consulta externa )

1,239 views
Skip to first unread message

GSCP

unread,
Oct 5, 2011, 4:28:31 PM10/5/11
to Drupal-br
Caros colegas estou precisando de uma forcinha, preciso fazer uma
consulta SQL e fazer com que essa consulta: crie uma lista em ordem
”DESC LIMIT 1, 1, “
com 3 coluna e duas linhas.
Sabendo que os dados não estão no mesmo bando do Drupal. Os dados
estão em outro DB (bando de dados). *outro lugar(prédio)*

O que não estou conseguindo é fazer a consulta. (tenho em mãos os
seguintes dados :
nome da conexão;
nome do banco:
nome das tabela:
nome dos atributos:

PS: eu inseri o dados de conexão no arquivo : ___settings___
/srv/www/htdocs/meuprojeto02/sites/default/settings.php
____________________________________________________
OBS:drupal- 7.8
Módulos intalados:

Permite que se execute código PHP.(Ativado)
Field (ativado), Field SQL storage (ativado)
Field SQL storage
Content Migrate - Migrate exemplo(ativos)
<hr>

--
banco -> teste_sql
usuario -> admin_admin
senha -> 123456
host -> 177.89.96.25 ou localhost
driver -> mysql
--
tabela -> tabela_a
campos -> id, nome e sobrenome
---

Guilherme de Sousa Cartes Puentes

unread,
Oct 5, 2011, 4:37:27 PM10/5/11
to drup...@googlegroups.com
Obrigado desde já.
Eu achei um tópico bem semelhante ao meu, porem não tem comentários:

Importar conteúdo de fontes externas
Requerido por: Data Migration (
ativado), Exemplo de Migração Data (desativado), Migrar Exemplo (ativado),migrate_example_baseball (desativado), Migrar UI (ativado)


Obrigado!
By:G.S.C.P 
______________________________________________

Felipe Duardo

unread,
Oct 5, 2011, 4:45:48 PM10/5/11
to drup...@googlegroups.com
/* data db comercial */
$comercial = array(
  'database' => 'comercial',
  'username' => 'user',
  'password' => 'pass',
  'host' => '127.0.0.0',
  'port' => '3306',
  'driver' => 'mysql',
  'prefix' => '',
);

Database::addConnectionInfo('comercial', 'default', $comercial);

db_set_active('comercial');

depois o basico

$data = array(
                'id',
                'nome',
                'email',
                'servico',
                'telefone'
                );
            
            $sql = db_select('contatos', 'c')
                    ->fields('c', ($data))
                    ->execute();

            $dados = $sql->fetchAll();
            
            foreach ( $dados as $conteudo )
            { }



--
Ao responder um tópico, reproduza apenas a parte relevante da mensagem original, apagando demais partes e assinaturas.
 
Para cancelar a inscrição deste grupo: drupal-br+...@googlegroups.com
Para ver mais opções: http://groups.google.com/group/drupal-br?hl=pt-BR_BR?hl=pt-BR



--
Felipe Duardo

GSCP

unread,
Oct 6, 2011, 10:57:01 AM10/6/11
to Drupal-br
<?php
/* data db criar tabela */
$tabela_a = array(
'database' => 'teste_sql',
'username' => 'admin_admin',
'password' => '123456',
'host' => '180.183.60.140',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
);
Este trexo eu coloquei no arquivo sttings.php isso eta correto?

Database::addConnectionInfo('teste_sql', 'default', $teste_sql);

db_set_active('teste_sql');

*depois o basico*

$data = array(
'id',
'nome',
'sobrenome',
);

$sql = db_select('tabela-a', 'nome')
->fields('nome', ($data))
->execute();

$dados = $sql->fetchAll();

foreach ( $nome as $id )
{ }


Obrigado Felipe Duardo

Felipe Duardo

unread,
Oct 6, 2011, 11:08:16 AM10/6/11
to drup...@googlegroups.com
bom nao sei onde voce vai exibir isso mas por exemplo se fosse um node
poderia ser no proprio node..

--
Ao responder um tópico, reproduza apenas a parte relevante da mensagem original, apagando demais partes e assinaturas.

Para cancelar a inscrição deste grupo: drupal-br+...@googlegroups.com
Para ver mais opções: http://groups.google.com/group/drupal-br?hl=pt-BR_BR?hl=pt-BR



--
Felipe Duardo

GSCP

unread,
Oct 6, 2011, 11:40:57 AM10/6/11
to Drupal-br
No caso eu crie um novo tipo de conteúdo:

novo tipo de conteúdo ->consulta externa:
add conteúdo: ->consulta externa
view -> lista resultado externo


_________________________________________________________________
Incio a consulta a partir daqui:
<°/php ?
Database::addConnectionInfo('teste_sql', 'default', $teste_sql);
> db_set_active('teste_sql');
__________________________________________________________________
..\..\pasta\meuprojeto\sites\default\settings.php
-----------------------------------------------------------------
Formato de texto:Estou utilizando escrever código PHP. Basta incluir
as tags <?php ?>.
Me retorna a seguinte mensagem:

Created new alias conteudo/resultado-consulta-externa-3 for node/
100000008.
Criar Consulta Externa - BD Resultado consulta externa 3 foi
criado.
----

GSCP

unread,
Oct 21, 2011, 4:25:45 PM10/21/11
to Drupal-br
Felipe, eu consegui: fazer a consulta e exibir o resultado:
Agora minha pergunta é:
Eu criei um novo tipo de conteúdo.
[node/22][Criar-consulta] ,
- exe.: node/23 - lista todas as consultas .
porem quero saber posso colocar meu codigo no BODY sem problemas?

eu inicio meu codigo no meu novo tipo de conteudo assim oh:

http://www.drupal-br.org/criar-consulta-sql-table-i-como-se-conectar-varios-bancos-de-dados-dentro-drupal

<?php
//Conectar e consultar banco
mysql_connect('localhost','SEU_user','SUA_SENHA') or
die('Erro ao logar no banco de dados Teste_sql-INPE');
mysql_select_db('NOME DO SEU BANCO DE DADOS') or die('Erro
ao selecionar banco de dados');
$qry = mysql_query("select id, nome, sobrenome from tabela_a");//LER
todos e pegar os nomes dos campos (id,nome,sobrenome são os
$id_fields = mysql_num_fields($qry); //ler o numero de campos do
resultado
for($i = 0;$i<$id_fields; $i++){ //Pegar o nome dos campos
$fields[] = mysql_field_name($qry,$i);
}
//Criando tabela HTML o cabeçalho da tabela
$table = '<table border="1"><tr>';
for($i = 0;$i < $id_fields; $i++){
$table .= '<th>'.$fields[$i].'</th>';
}
//Criando o corpo da tabela
$table .= '<tbody>';
while($r = mysql_fetch_array($qry)){
$table .= '<tr>';
for($i = 0;$i < $id_fields; $i++){
$table .= '<td>'.$r[$fields[$i]].'</td>';
}
$table .= '</tr>';
}
//Terminando a tabela
$table .= '</tbody></table>';
//Mostrar(imprimir) a tabela
echo $table;
?>


Abraço quero fazer esse tipo de consulta mas não quero escrever os
dados da conexao e nem user/senha

Obrigado desde já!
G.S.C.P

Felipe Duardo

unread,
Oct 22, 2011, 9:22:57 AM10/22/11
to drup...@googlegroups.com
entao nao entendi direito e to meio sem tempo agora
mas pesquisa aqui no forum que eu mesmo tive essa duvida...
voce pode tipo setar la no settings.php, senão me engano suas conexões
depois voce so indica qual vai usar no node...

--
Ao responder um tópico, reproduza apenas a parte relevante da mensagem original, apagando demais partes e assinaturas.

Para cancelar a inscrição deste grupo: drupal-br+...@googlegroups.com
Para ver mais opções: http://groups.google.com/group/drupal-br?hl=pt-BR_BR?hl=pt-BR



--
Felipe Duardo

Reply all
Reply to author
Forward
0 new messages