aprendiz_ce Postado Fevereiro 21, 2013 Denunciar Share Postado Fevereiro 21, 2013 Será que alguém poderia me dar uma ajuda para ajustar essa rotina que estou testando? Necessito formatar dessa maneira: { "contatos": [ { "cod": "0001", "nome": "fulano", "fone": { "movel": "99887766", "casa": "33554477", "trab": "77665544" } }, ] } Mas só estou conseguindo deixar assim: { "contatos": [ { "cod": "0001", "nome": "fulano" }, { "fone": [ { "movel": "99887766" }, { "casa": "33554477" }, { "trab": "665544" } ] } ] } Rotina: <?php $arrContatos = array(); $arrFones = array(); $arrContatos[] = array('cod'=>'0001','nome'=>'fulano'); $arrFones[] = array('movel'=>'99887766'); $arrFones[] = array('casa'=>'33554477'); $arrFones[] = array('trab'=>'665544'); $arrContatos[] = array('fone'=>$arrFones); header('Content-type: application/json'); echo json_encode(array('contatos'=>$arrContatos)); ?> Na realidade isso é só um rascunho, pois os array/matrizes/objetos vão ser carregados com dados do banco, mas pra eu aprender e ver onde estou errando, o exemplo já me ajudaria a tirar as minhas dúvidas. Grato a todos e aguardo qualquer ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Fevereiro 21, 2013 Denunciar Share Postado Fevereiro 21, 2013 Teste essa estrutura:$arrContatos[] = array( 'cod' => '0001', 'nome' => 'fulano', 'fone' => array( 'movel' => '99887766', 'casa' => '33554477', 'trab' => '665544' ) ); header('Content-type: application/json'); echo json_encode(array('contatos'=>$arrContatos)); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aprendiz_ce Postado Fevereiro 21, 2013 Autor Denunciar Share Postado Fevereiro 21, 2013 (editado) Teste essa estrutura:$arrContatos[] = array( 'cod' => '0001', 'nome' => 'fulano', 'fone' => array( 'movel' => '99887766', 'casa' => '33554477', 'trab' => '665544' ) ); header('Content-type: application/json'); echo json_encode(array('contatos'=>$arrContatos));Perfeito!Assim deu certo, mas no caso do carregamento dinâmico vai dar certo?Tenho duas tabela no DB, aonde uma é a CONTATOS e a outra os TELEFONE relacionados. Como eu faço essa junção? Ou seja, criar esse SEGUNDO array dentro do outro já que na TABELA CONTATOS não exite a coluna TELEFONE.Já estou tonto de tentar, tentar, tentar e no final não dar certo. Editado Fevereiro 21, 2013 por aprendiz_ce Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Fevereiro 22, 2013 Denunciar Share Postado Fevereiro 22, 2013 Como você está fazendo?Cole seu código ai para analisarmos...Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aprendiz_ce Postado Fevereiro 23, 2013 Autor Denunciar Share Postado Fevereiro 23, 2013 Como você está fazendo?Cole seu código ai para analisarmos...AbraçoO meu problema seria o seguinte: Como ficaria se o "$arrFones" fosse carregado/preenchido com o comando "while ($arrFones = mysql_fetch_array($resultSqlFones))"? Tentei, mas o mesmo acaba incluindo os colchetes ([]) para os fones, e é exatamente isso que não quero.Seria só isso mesmo.Grato pela sua pronta atenção. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Fevereiro 25, 2013 Denunciar Share Postado Fevereiro 25, 2013 Como você está adicionando este array no array principal?Se você adicionar o array de fones referenciando quais elemento quer recuperar. Assim:$arrContatos[] = array( 'cod' => '0001', 'nome' => 'fulano', array( 'movel' => $arrFones['movel'], 'casa' => $arrFones['casa'], 'trab' => '$arrFones['trab'] ) ); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aprendiz_ce Postado Fevereiro 25, 2013 Autor Denunciar Share Postado Fevereiro 25, 2013 Como você está adicionando este array no array principal?Se você adicionar o array de fones referenciando quais elemento quer recuperar. Assim:$arrContatos[] = array( 'cod' => '0001', 'nome' => 'fulano', array( 'movel' => $arrFones['movel'], 'casa' => $arrFones['casa'], 'trab' => '$arrFones['trab'] ) ); Por gentileza, dè uma olhada nessa rotina. Segue: <?php // Conexão com o banco de dados $con = mysql_connect('localhost','XXXX','XXXX') or die('Erro de conexão com o DB'); mysql_select_db('XXXX',$con); // Contatos $sqlContatos = "SELECT * FROM contatos"; $resultContatos = mysql_query($sqlContatos, $con) or die('Query erro: ' . $sqlContatos); // Gera array com os dados dos contatos while ($rowContatos = mysql_fetch_array($resultContatos)) { // utilizado para definir o array quando houver mais de 1 registro retornado. $i = 0; foreach($rowContatos as $key => $value) { if (is_string($key)) { // Cria um array com o nome do campo e valor. $fieldsContatos[mysql_field_name($resultContatos, $i++)] = $value; } } // Fones $sqlFones = "SELECT * FROM fones WHERE cli_codigo = " . $rowContatos['cli_codigo']; $resultFones = mysql_query($sqlFones, $con) or die('Query erro: '.$sqlFones); // Gera array com os dados dos fones while ($rowFones = mysql_fetch_array($resultFones)) { // utilizado para definir o array quando houver mais de 1 registro retornado. $i = 0; foreach($rowFones as $key => $value) { if (is_string($key)) { // Cria um array com o nome do campo e valor $fieldsFones[mysql_field_name($resultFones, $i++)] = $value; } } $result_json_fones[] = $fieldsFones; } } $fieldsContatos['fones'] = $result_json_fones; header('Content-type: application/json'); echo json_encode(array('contatos'=>$fieldsContatos)); /* disconnect from the db */ @mysql_close($con); ?>Grato pela sua atenção e aguardo pelo seu comentário. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
aprendiz_ce
Será que alguém poderia me dar uma ajuda para ajustar essa rotina que estou testando?
Necessito formatar dessa maneira:
{
"contatos": [
{
"cod": "0001",
"nome": "fulano",
"fone": {
"movel": "99887766",
"casa": "33554477",
"trab": "77665544"
}
},
]
}
Mas só estou conseguindo deixar assim:
{
"contatos": [
{
"cod": "0001",
"nome": "fulano"
},
{
"fone": [
{
"movel": "99887766"
},
{
"casa": "33554477"
},
{
"trab": "665544"
}
]
}
]
}
Rotina:
<?php
$arrContatos = array();
$arrFones = array();
$arrContatos[] = array('cod'=>'0001','nome'=>'fulano');
$arrFones[] = array('movel'=>'99887766');
$arrFones[] = array('casa'=>'33554477');
$arrFones[] = array('trab'=>'665544');
$arrContatos[] = array('fone'=>$arrFones);
header('Content-type: application/json');
echo json_encode(array('contatos'=>$arrContatos));
?>
Na realidade isso é só um rascunho, pois os array/matrizes/objetos vão ser carregados com dados do banco, mas pra eu aprender e ver onde estou errando,
o exemplo já me ajudaria a tirar as minhas dúvidas.
Grato a todos e aguardo qualquer ajuda.
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.