Ir para conteúdo

POWERED BY:

Arquivado

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

Mário Miranda

[Resolvido] Verificar relacionamento entre tabelas

Recommended Posts

Bom dia.

Gostaria de saber se é possível, em php, verificar a existência de relacionamento entre duas tabelas.

Ex:Verificar se existe chave estrangeira da tb_teste para a tb_resultado.

 

Se alguém conhecer algum comando de SQL para isso, já me ajudaria muito.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No phpMyAdmin dá pra olhar, mais ou menos no estilo do Access

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se tiver vai ser com algum comando do Postgree, que pode ser executado pelo PHP.

 

Talvez no manual tenha alguma coisa.

http://br.php.net/manual/pt_BR/ref.pgsql.php

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não encontrar e quiser, posso mover a sua dúvida para o fórum de Postgre. Aí é só executar o comando utilizando pg_query.

 

Pode ser?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Matias.

Mais uma vez obrigado pela atenção.

Na verdade, eu já havia peguntado algo sobre isso no forum de postgres... mas lá ninguém me respondeu ainda.

Na verdade é o seguinte: eu estou tentando fazer um simples gerador de relatório. para isso eu preciso disponibilizar para o usuário uma opção que ele mesmo possa fazer relacionamento entre as tabelas que ele deseja exibir no relatório. Só que para eu fazer isso, eu preciso dar um jeito de validar esses possíveis relacionamentos.

Você tem alguma idéia de como eu posso proceder com isso?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, eu faria isto via aplicação mesmo, ou seja, grava os relacionamentos entre as tabelas na aplicação. Mais ou menos como é feito no Zend Framework. Veja um exemplo.

 

protected $_referenceMap    = array(
        'client' => array(
            'columns'           => array('client_id'),
            'refTableClass'     => 'tbl_clients',
            'refColumns'        => array('client_id')
        ),
        'phone' => array(
            'columns'           => array('contact_id'),
            'refTableClass'     => 'tbl_phones',
            'refColumns'        => array('ref_id')
        ),
        'email' => array(
            'columns'           => array('contact_id'),
            'refTableClass'     => 'tbl_email',
            'refColumns'        => array('ref_id')
        )
    );

Fazendo isto em cada Model, você pode definir quem pode se relacionar com quem durante o relatório.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah blza Matias.

obrigado pela dica.

Vou fazer desta forma mesmo.

´Só me tira uma dúvida: Eu sempre tive trabalho com esse tipo de array.

Como eu faço pra acessar seus valores?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te dar duas dicas. Para imprimir de uma forma mais fácil de visualizar, utilize:

 

echo '<pre>';
print_r($array);
echo '</pre>';

Isto serve para debug. Veja como fica no exemplo ali em cima.

Array
(
    [client] => Array
        (
            [columns] => Array
                (
                    [0] => client_id
                )

            [refTableClass] => tbl_clients
            [refColumns] => Array
                (
                    [0] => client_id
                )

        )

    [phone] => Array
        (
            [columns] => Array
                (
                    [0] => contact_id
                )

            [refTableClass] => tbl_phones
            [refColumns] => Array
                (
                    [0] => ref_id
                )

        )

    [email] => Array
        (
            [columns] => Array
                (
                    [0] => contact_id
                )

            [refTableClass] => tbl_email
            [refColumns] => Array
                (
                    [0] => ref_id
                )

        )

)

Então, para acessar o valor de client_id, você faz assim:

echo $_referenceMap['client']['columns'][0];

Mas no seu caso, talvez seja interessante utilizar funções te array, como o in_array(). Veja o book completo.

http://br.php.net/manual/pt_BR/book.array.php

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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