Azalin 0 Denunciar post Postado Junho 4, 2015 amigos, como posso gerar um resultado JSON com PHP igual ao resultado abaixo vindo de uma esquisa mySQL, a complexidade para mim está no array das categorias. se alguem poder ajudar agradeço desde já. att [{ "id": 1, "nome": "Mercearia do João", "endereco": "Rua Machado de Assis", "tel": "9999.9999", "imagem": "logo.jpg", "carnes":[ {"nome":"Picanha", "imagem":"picanha.jpg", "preco":"32.50"}, {"nome":"Picanha", "imagem":"picanha.jpg", "preco":"32.50"}, {"nome":"Picanha", "imagem":"picanha.jpg", "preco":"32.50"}, {"nome":"Picanha", "imagem":"picanha.jpg", "preco":"32.50"} ] "pães":[ {"nome":"pão de forma", "imagem":"paodeforma.jpg", "preco":"2.50"}, {"nome":"pão de forma", "imagem":"paodeforma.jpg", "preco":"2.50"}, {"nome":"pão de forma", "imagem":"paodeforma.jpg", "preco":"2.50"}, {"nome":"pão de forma", "imagem":"paodeforma.jpg", "preco":"2.50"} ] "frutas":[ {"nome":"manga", "imagem":"manga.jpg", "preco":"1.50"}, {"nome":"manga", "imagem":"manga.jpg", "preco":"1.50"}, {"nome":"manga", "imagem":"manga.jpg", "preco":"1.50"}, {"nome":"manga", "imagem":"manga.jpg", "preco":"1.50"} ] Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 4, 2015 Tendo o array de categorias (retornado pelas funções fetch()), basta usar json_encode http://php.net/json_encode Compartilhar este post Link para o post Compartilhar em outros sites
Azalin 0 Denunciar post Postado Junho 4, 2015 Beraldo, obrigado pela dica, mas ai que está o problema, eu já tentei algumas coisa e não consegui, o maximo que eu já consegui chegar foi esse cód. o problema é a manipulação do Array ! <?php $db_name = 'teste'; $hostname = '127.0.0.1'; $username = 'teste'; $password = '123'; $dbh = new PDO("mysql:host=$hostname;dbname=$db_name", $username, $password); $sql = 'SELECT * FROM estabelecimentos'; $stmt = $dbh->prepare( $sql ); $stmt->execute(); $result = $stmt->fetchAll( PDO::FETCH_ASSOC ); $json = json_encode( $result ); echo $json; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 4, 2015 o problema é a manipulação do Array ! Que manipulação precisa fazer e qual é o problema? $result é o array com todos os dados. O que você precisa alterar nele? Compartilhar este post Link para o post Compartilhar em outros sites
Azalin 0 Denunciar post Postado Junho 4, 2015 preciso que o php me retorne o JSON neste formato, é o que eu não estou sabendo fazer. "carnes":[ {"nome":"Picanha", "imagem":"picanha.jpg", "preco":"32.50"} ] "pães":[ {"nome":"pão de forma", "imagem":"paodeforma.jpg", "preco":"2.50"} ] "frutas":[ {"nome":"manga", "imagem":"manga.jpg", "preco":"1.50"} ] o codigo que eu coloquei acima só me retorna os valores dessa forma: "id": 1, "nome": "Mercearia do João", "endereco": "Rua Machado de Assis", "tel": "9999.9999", "imagem": "logo.jpg", "carnes":"", "pães":"", "frutas":"", Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 5, 2015 Não tem segredo, segue a logica, e tente adaptar a sua consulta.Em execução http://ideone.com/YF1pu3 <?php $array = array(); $dados['id'] = 1; $dados['nome'] = "Mercearia do João"; $dados['endereco'] = "Rua Machado de Assis"; $dados['tel'] = "9999.9999"; $carnes = array(); for ($i=0; $i < 4 ; $i++) { $carne['nome'] = 'Picanha'; $carne['imagem'] = 'picanha.jpg'; $carne['preco'] = '32.50'; array_push($carnes, $carne); } $paes = array(); for ($i=0; $i < 4 ; $i++) { $pao['nome'] = 'pão de forma'; $pao['imagem'] = 'paodeforma.jpg'; $pao['preco'] = '2.50'; array_push($paes, $pao); } $frutas = array(); for ($i=0; $i < 4 ; $i++) { $fruta['nome'] = 'manga'; $fruta['imagem'] = 'manga.jpg'; $fruta['preco'] = '1.50'; array_push($frutas, $fruta); } $dados['carnes'] = $carnes; $dados['paes'] = $paes; $dados['frutas'] = $frutas; array_push($array, $dados); echo json_encode($array) ; output [ { "id": 1, "nome": "Mercearia do João", "endereco": "Rua Machado de Assis", "tel": "9999.9999", "carnes": [ { "nome": "Picanha", "imagem": "picanha.jpg", "preco": "32.50" }, { "nome": "Picanha", "imagem": "picanha.jpg", "preco": "32.50" }, { "nome": "Picanha", "imagem": "picanha.jpg", "preco": "32.50" }, { "nome": "Picanha", "imagem": "picanha.jpg", "preco": "32.50" } ], "paes": [ { "nome": "pão de forma", "imagem": "paodeforma.jpg", "preco": "2.50" }, { "nome": "pão de forma", "imagem": "paodeforma.jpg", "preco": "2.50" }, { "nome": "pão de forma", "imagem": "paodeforma.jpg", "preco": "2.50" }, { "nome": "pão de forma", "imagem": "paodeforma.jpg", "preco": "2.50" } ], "frutas": [ { "nome": "manga", "imagem": "manga.jpg", "preco": "1.50" }, { "nome": "manga", "imagem": "manga.jpg", "preco": "1.50" }, { "nome": "manga", "imagem": "manga.jpg", "preco": "1.50" }, { "nome": "manga", "imagem": "manga.jpg", "preco": "1.50" } ] } ] Compartilhar este post Link para o post Compartilhar em outros sites
Azalin 0 Denunciar post Postado Junho 5, 2015 Williams Duarte, esse seria a melhor forma, mas eu preciso que venha do banco mysql. então estou com minha pesquisa, mas não estou conseguindo, cheguei a esse codigo abaixo. mas não funciona. <?php $response =array(); $response_lanche =array(); require_once 'db.php'; $db = new connexion(); $result = $db->query("SELECT * FROM cliente inner join frutas on (cliente.id=lanches.idcliente)"); if(mysqli_num_rows($result) > 0){ $response["clientes"] = array(); while ($row = $result->fetch_object()) { $cliente = array(); $cliente["id"] = $row->id; $cliente["nome"] = $row->nome; $cliente["tel"] = $row->tel; $cliente["end"] = $row->end; $cliente["img"] = $row->img; $cliente["idFruta"]= $row->idFruta; $cliente["idcliente"]= $row->idcliente; $cliente["fruta"] = $row->fruta; $cliente["descricao"] = $row->descricao; $cliente["preco1"] = $row->preco1; array_push($response["clientes"], $cliente); } $response["sucesso"] = 1; echo json_encode($response); }else{ $response["sucesso"] = 0; $response["mensagem"] = "Por favor atualize a pagina!"; echo json_encode($response); } ?> ele mostra o cliente mas não faz os arrays que preciso dentro dos dados do cliente. se alguem poder ajudar!!!! Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 5, 2015 Williams Duarte, esse seria a melhor forma, mas eu preciso que venha do banco mysql. então estou com minha pesquisa, mas não estou conseguindo, cheguei a esse codigo abaixo. mas não funciona. Como assim seria a melhor forma? O exemplo que postei é somente a lógica do negócio, se precisar de duas consultas, faça, teste e quebre a cabeça testando, agora que não posso e fazer por você. Compartilhar este post Link para o post Compartilhar em outros sites