souzvidal 0 Denunciar post Postado Abril 13, 2016 Olá Pessoal,Ando enfrentando um problema. Preciso apresentar dados de duas tabelas diferentes, tudo inicia com um cadastro de pessoa que as chamo de membros e essa pessoa podem ter nenhum ou mais filhos, então criei no banco duas tabelas membro e membro_filho. Quando vou recuperar esses dados no php para apresentar o cadastro da pessoa fiz a seguinte página: <?php //Inicializa Variáveis /*-----------------------------------------------------------*/ include 'inicializaVariaveis.php'; /*-----------------------------------------------------------*/ ?> <html lang="pt-BR"> <?php include 'head.php';?> <body> <div id="wrap"> <div class="bs-header"> <div class="container"> </div> <section class="ss-style-zigzag"></section> </div><div class="container"> <br> <header> <center><h1 style="font-size:25px"><b>Igreja Presbiteriana Betel - Escola dominical</b></h1></center><br> <?php include 'conectadocomo.php';?><br><br> </header> <br><br> <?php include 'menu.php';?> <div> </div> <div id="main-content" class="jumbotron panel panel-default"> <div id="logo"> <legend class="text-center header">Informação de membro</legend> <table class="table table-striped table-bordered" cellspacing="0" cellpadding="5" border="1" align="center" width="100%"> <tbody> <?php if(isset($_GET['idmembro'])){ $query= mysql_query('SELECT * FROM membro WHERE flagativo="1" AND ID="'.$_GET['idmembro'].'"'); $retorno= mysql_fetch_array($query); $query2=mysql_query("SELECT * FROM membro_filho INNER JOIN membro ON membro_filho.IDMembro=membro.ID WHERE membro.ID=".$_GET['idmembro']); $retorno2=mysql_fetch_assoc($query2); $qtde = mysql_num_rows($query2); } print_r($retorno2); ?> <tr> <td>NOME:</td> <td><?php echo $retorno['nome'];?></td> </tr> <tr> <td>CEP:</td> <td><?php echo $retorno['cep'];?></td> </tr> <tr> <td>ENDEREÇO:</td> <td><?php echo $retorno['endereco'];?></td> </tr> <tr> <td>NÚMERO:</td> <td><?php echo $retorno['numero'];?></td> </tr> <tr> <td>BAIRRO:</td> <td><?php echo $retorno['bairro'];?></td> </tr> <tr> <td>CIDADE:</td> <td><?php echo $retorno['cidade'];?></td> </tr> <tr> <td>UF:</td> <td><?php echo $retorno['uf'];?></td> </tr> <tr> <td>E-MAIL:</td> <td><?php echo $retorno['email'];?></td> </tr> <tr> <td>TELEFONE:</td> <td><?php echo $retorno['telefone'];?></td> </tr> <tr> <td>CELULAR:</td> <td><?php echo $retorno['celular'];?></td> </tr> <tr> <td>DATA DE NASCIMENTO:</td> <td><?php echo date('d-m-Y',strtotime(str_replace('-','/',$retorno['datanascimento'])));?></td> </tr> <tr> <td>NOME DO CÔNJUGE:</td> <td><?php echo $retorno['nomeconjuge'];?></td> </tr> <tr> <td>E - MAIL DO CÔNJUGE:</td> <td><?php echo $retorno['emailC'];?></td> </tr> <tr> <td>DATA DE CASAMENTO:</td> <td><?php echo date('d-m-Y',strtotime(str_replace('-','/',$retorno['datacasamento'])));?></td> </tr> <?php if($retorno2){ $i=1; while($i<=$qtde){ echo '<tr>'. '<td>NOME DO FILHO:</td>'. '<td>'.$retorno2['nomefilho'].'</td>'. '</tr>'. '<tr>'. '<td>E-MAIL DO FILHO:</td>'. '<td>'.$retorno2['emailfilho'].'</td>'. '</tr>'; $i++; } }else{ } ?> </tbody> </table> </div> </div><br><br></div> <?php include 'rodape.php';?> </body> <!--------------------------------------------------------------> </html> O problema é que a query2 está vindo limitada ela só traz o primeiro filho no mysql_fetch_assoc e quando quando dou um mysql_num_rows ele mostrado dois, segue parte no código com print_r e var_dump: $query2=mysql_query("SELECT * FROM membro_filho INNER JOIN membro ON membro_filho.IDMembro=membro.ID WHERE membro.ID=".$_GET['idmembro']); $retorno2=mysql_fetch_assoc($query2); $qtde = mysql_num_rows($query2); } print_r($retorno2); var_dump($qtde); Estou utilizando php puro, já aconteceu algo parecido com alguém ? Desde já agradeço a ajuda e as dicas. Compartilhar este post Link para o post Compartilhar em outros sites
DSerma 19 Denunciar post Postado Abril 13, 2016 Cara, não entendi essa sua JOIN ai. Se você já tem o id do membro, basta montar uma query simples para o filho. Ex: SELECT * FROM membro_filho WHERE IDMembro =".$_GET['idmembro'] Pronto, assim ele vai te trazer todos os filhos do membro. Compartilhar este post Link para o post Compartilhar em outros sites
souzvidal 0 Denunciar post Postado Abril 13, 2016 Acabou ficando a mesma coisa... Olha o que trouxe no resultado do print_r com o mysql_fetch_assoc: Array ([iD] => 43 [nomefilho => danielfilho1 [emailfilho] => danielfilho1@email.com [flagativo] => 1 {IDMembro] => 73) E no var_dump mostra que trouxe dois com o mysql_num_rows: int(2) Não traz as duas consultas vindas da query do mysql_fetch_assoc. Compartilhar este post Link para o post Compartilhar em outros sites
DSerma 19 Denunciar post Postado Abril 13, 2016 Troque o mysql_fetch_assoc por mysql_fetch_array Compartilhar este post Link para o post Compartilhar em outros sites
souzvidal 0 Denunciar post Postado Abril 13, 2016 Tinha tentado isso anteriormente com a query antiga e agora o mesmo resultado, só traz a primeira linha, segue resultado: Array ( [0] => 43 [iD] => 43 [1] => danielfilho1 [nomefilho] => danielfilho1 [2] => danielfilho1@email.com [emailfilho] => danielfilho1@email.com [3] => 1 [flagativo] => 1 [4] => 73 [iDMembro] => 73 ) int(2) Compartilhar este post Link para o post Compartilhar em outros sites
DSerma 19 Denunciar post Postado Abril 13, 2016 Cara, se você der um var_dump ou até mesmo um print_r no mysql_fetch_array ou assoc, ele só vai mostrar o primeiro mesmo.Para pegar tudo o que ele traz, tem que colocá-lo em um while. Ex: while( $row = mysql_fetch_array($resultado)){ echo $row['nomefilho'] .'<br>'; } Assim você terá todos os registros trazidos pela query. Compartilhar este post Link para o post Compartilhar em outros sites
souzvidal 0 Denunciar post Postado Abril 13, 2016 Deu certo!!! Obrigado pela ajuda, era isso estava fazendo o while errado, deu certo puxando o mysql_fetch_array direto nele na clausula: while($retorno2=mysql_fetch_array($query2)){ echo '<tr>'. '<td>'.$retorno2['nomefilho'].'</td>'. '</tr>'. ... } Compartilhar este post Link para o post Compartilhar em outros sites