Ir para conteúdo

POWERED BY:

Arquivado

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

luan_alves

[Resolvido] criar array para json

Recommended Posts

bom dia

estou criando um array para retorno em json, porem o problema é que eu só consigo criar o array na seguinte situação

[{"categoria":"asfsdf","id_categoria":"5","itens":[{"id":"13","titulo":"teste1","status":"false"},{"id":"12","titulo":"teste cor ","status":"true"},{"idCor":"1","cor":"background-color: rgb(0, 13, 255);"}]}]

com o seguinte codigo

$buscaCat = $db->query("select titulo,id from linha_produtos where id=$id");
   while($camposCat = $buscaCat->fetch())
   {
       $arquivos= array('categoria'=>$camposCat[0],'id_categoria'=>$camposCat[1]);
       $busca = $db->query("select id,id_linha,titulo,status from produtos where id_linha=$id");
       while($campos = $busca->fetch())
       {
           $arquivos['itens'][]=array('id'=>$campos[0],'titulo'=>utf8_encode($campos[2]),'status'=>$campos[3]);

           // verifica se o produto tem cor vinculada
           $buscaCor = $db->query("select coresProdutos.id,coresProdutos.cor from coresProdutos inner join produtos on coresProdutos.id_produto = produtos.id where coresProdutos.id_produto=$campos[0]");
           $linhaCor = $buscaCor->rowCount();
           if($linhaCor > 0)
           {
               while($campoCor=$buscaCor->fetch())
               {
                   $arquivos['itens'][]=array('idCor'=>$campoCor[0],'cor'=>($campoCor[1]));
               }

           }
       }
   }
echo "[".json_encode($arquivos)."]";

o retorno do array deveria ser quando aquele produto estiver uma cor vinculada a ela então coloque ele como filho daquele produto no array do json, mas o que eu estou conseguinte, é vem as informações de todos os produtos e ai é gerado um outro array com as cores de cada produto, da para utilizar deste jeito, porem será da forma errada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[{"categoria":"asfsdf","id_categoria":"5","itens":
[{"id":"13","titulo":"teste1","status":"false","cor":
	[{"idCor":"1","cor":"background-color: rgb(0, 13, 255);"}]},
{"id":"12","titulo":"teste cor ","status":"true"}]

se determinado produto tiver alguma cor a mesma será anexada em seu array

Compartilhar este post


Link para o post
Compartilhar em outros sites
while($campoCor=$buscaCor->fetch())
               {
                   $i = ((count($arquivos['itens'])) - 1);
                   $arquivos['itens'][$i]=array('idCor'=>$campoCor[0],'cor'=>($campoCor[1]));

               }

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei do jeito que você colocou e mesmo assim não deu certo

retornou isso

[{"categoria":"asfsdf","id_categoria":"5","itens":[{"id":"13","titulo":"teste1","status":"false"},{"idCor":"12","cor":"background-color: rgb(255, 0, 0);"}]}]

quando deveria ter retornado isso

[{"categoria":"asfsdf","id_categoria":"5","itens":[{"id":"13","titulo":"teste1","status":"false","cor":[{{"idCor":"12","cor":"background-color: rgb(255, 0, 0);"}}]}]}]

Compartilhar este post


Link para o post
Compartilhar em outros sites
if($linhaCor > 0)
           {
               while($campoCor=$buscaCor->fetch())
               {
                   $cores[]=array('idCor'=>$campoCor[0],'cor'=>($campoCor[1]));
               }
			$i = ((count($arquivos['itens'])) - 1);
			$arquivos['itens'][$i]['cor'] = $cores;

           }

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.