Célio A. 4 Denunciar post Postado Setembro 10, 2014 Estou tendo dificuldades para exibir dados de tabelas relacionadas, estou tentando um exercicio com a seguinte estrutura. Na tabela pessoa eu tenho os seguintes campos:idnomecidade_fk (referencia cidade id)Na tabela cidade:idcidade Bem... Isso é o que eu sei fazer, exibir os resultados de uma tabela <?php if(file_exists("conectar.php")) { require "conectar.php"; } else { echo "Arquivo conectar.php nao foi encontrado"; exit; } //seleciona o banco de dados mysql_select_db("$banco", $conexao); $query_lista = mysql_query("SELECT * FROM pessoa ORDER BY id"); while($lista = mysql_fetch_array($query_lista)) { echo $lista[id]." ".$lista[nome]; } ?> O que preciso é exibir o id, nome (da tabela pessoas) e a cidade (tabela cidade). OBS. Consigo fazer a query com SQL, mas não com o PHP. Qualquer ajuda sera bem vinda. Compartilhar este post Link para o post Compartilhar em outros sites
dochipis 6 Denunciar post Postado Setembro 10, 2014 $query_lista = mysql_query("SELECT p.id, p.nome, c.cidade FROM pessoa p INNER JOIN cidade c ON p.cidade_fk = c.id ORDER BY p.id"); while($lista = mysql_fetch_array($query_lista)) { echo $lista[id]." ".$lista[nome]." ".$lista[cidade]; } o básico em relacionamento de tabelas. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Setembro 10, 2014 se você consegue fazer a query com SQL, apenas a insira no lugar da sua query no PHP. Outro detalhe, não use as funções mysql_*. Migre para PDO ou MySQLi. Compartilhar este post Link para o post Compartilhar em outros sites
Célio A. 4 Denunciar post Postado Setembro 10, 2014 mais uma pergunta, se um atributo tiver o mesmo nome em tabelas diferentes, consigo exibir o resultado corretamente ou os nomes sempre tem que ser diferente? Ex: Se na tabela cidade o atributo 'cidade' tambem fosse 'nome', entao teria 'nome' da tabela pessoa e 'nome' da tabela cidade. Neste caso como exibo no array? Compartilhar este post Link para o post Compartilhar em outros sites
Fernando C 128 Denunciar post Postado Setembro 10, 2014 já respondido no post #2, mas use tabela.coluna Compartilhar este post Link para o post Compartilhar em outros sites
Célio A. 4 Denunciar post Postado Setembro 10, 2014 no array? Minha pergunta é se duas colunas de tabelas diferentes tiver o mesmo nome, como devo exibir Seria algo assim? echo $lista[id]." ".$lista[p.nome]." ".$lista[c.nome]; Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Setembro 10, 2014 utilize um alias e então use-o: $sql = 'SELECT pessoa.nome AS pessoa, cidade.nome AS cidade....'; O token AS indica que estará definindo um alias, então não tem problema em utilizar os nomes das tabelas. echo $row['pessoa']; echo $row['cidade']; Obs.: Ative a exibição de erros, seu código/sintaxe possui alguns erros triviais. Compartilhar este post Link para o post Compartilhar em outros sites
Célio A. 4 Denunciar post Postado Setembro 10, 2014 ok. Obrigado a todos. Compartilhar este post Link para o post Compartilhar em outros sites