Ir para conteúdo

Arquivado

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

rogerblower

Estou errando na consulta?

Recommended Posts

Pessoal preciso de ajuda, tenho a tabela abaixo e preciso mostrar os dados como uma árvore geneológica
Só que não estou conseguindo, segue a tabela e a consulta

Tabela:

CREATE TABLE IF NOT EXISTS `pessoas` (
  `id` int(5) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `nome` varchar(100) NOT NULL,
  `sobrenome` varchar(100) NOT NULL,
  `email` varchar(50) NOT NULL,
  `data_nasc` date NOT NULL,
  `sexo` enum('M','F') NOT NULL DEFAULT 'M',
  `usuario` varchar(100) NOT NULL,
  `senha` varchar(20) NOT NULL,
  `nivel` int(1) NOT NULL COMMENT '1 Administrador -  2 Usuário',
  `ativo` int(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5;

Consulta

$id = $_GET['id'];
$pessoa = mysql_query("SELECT pessoas.*, pais.*, pessoas.data_nasc, DATE_FORMAT(data_nasc, '%d/%m/%Y') AS data_nascimento FROM pessoas
INNER JOIN pais ON pais.id_filho = pessoas.id AND pais.id_pai = pessoas.pai_id AND pais.id_mae = pessoas.mae_id
WHERE id='$id'") or die (mysql_error());

a consulta acima retonar assim:

Id |Nome |id e Nome do Pai | id e Nome da Mãe
00003 |José |00001 - José |00002 - José


O id do pai e da mãe esta retornando certo, só o nome que não esta.

Onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está querendo receber ambas as informações na mesma linha, para isto, é necessário fazer uso de dois JOIN, uma para o pai e outro para a mãe, se não ele retornará somente uma das duas informações, ou em duas linhas.

 

Dá um "echo mysql_num_rows($pessoa);" após o mysql_query, pra ver quantas linhas foram retornadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

lokaodomau na verdade eu postei a query que estava testando, a query que estou usando é:

$id = $_GET['id'];
$pessoa = mysql_query("SELECT pessoas.*, pessoas.data_nasc, DATE_FORMAT(data_nasc, '%d/%m/%Y') AS data_nascimento FROM pessoas
WHERE id='$id'") or die (mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todos os pais e filhos devem ser exibidos? Para isso é preciso um JOIN para pegar o nome do pai e da mãe, e o pai e mãe deles, tem que pensar mais detalhadamente.

 

Depois interpretar com o PHP.

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.