Relationship with many tables in MySQL


#1

Hi,

How I can create a list with relationship tables in MySQL?

I created a PHP API, like that:

<?php /** * @author Ramos de Souza Janones * @package nhaac * * */ /** CONFIG:START **/ $config["host"] = "" ; //host $config["user"] = "ramosinfo" ; //Username SQL $config["pass"] = "rain14570" ; //Password SQL $config["dbase"] = "db_foodadmin" ; //Database $config["limit"] = 500 ; //limit row $config["abs_url_images"] = "http://your-web/" ; //Absolute Images URL $config["abs_url_videos"] = "http://your-web/" ; //Absolute Videos URL $config["abs_url_audios"] = "http://your-web/" ; //Absolute Audio URL /** CONFIG:END **/ $rest_api = array(); function utf8ize($d) { if (is_array($d)) { foreach ($d as $k => $v) { $d[$k] = utf8ize($v); } } else if (is_string ($d)) { return utf8_encode($d); } return $d; } /** connect to mysql **/ $mysql = new mysqli($config["host"], $config["user"], $config["pass"], $config["dbase"]); if (mysqli_connect_errno()){ echo "Não foi possivel conectar com Banco de Dados!"; die(mysqli_connect_error()); } if(!isset($_GET["json"])){ $_GET["json"]= "route"; } switch($_GET["json"]){ case "restaurantes": $sql = "SELECT fornecedores.cod_fornecedor, fornecedores.razao_social, fornecedores.fantasia, fornecedores.cnpj, fornecedores.ie, fornecedores.email, fornecedores.cep, fornecedores.logradourro, fornecedores.complemento, fornecedores.cidade, fornecedores.estado, fornecedores.responsavel_contato, fornecedores.telefone_empresa, fornecedores.telefone_responsavel, fornecedores.celular, fornecedores.qtd_entregadores, fornecedores.data_fundacao, fornecedores.senha, fornecedores.data_hora_cadastro, fornecedores.bairro, fornecedores.numero, fornecedor_visual.cod_fornecedor_visual, fornecedor_visual.cod_fornecedor, fornecedor_visual.descricao_empresa, fornecedor_visual.site, fornecedor_visual.facebook, fornecedor_visual.twitter, fornecedor_visual.instagram, fornecedor_visual.youtube, fornecedor_visual.localizacao_mapa, fornecedor_visual.logomarca, fornecedor_visual.foto1, fornecedor_visual.foto2, fornecedor_visual.foto3, fornecedor_visual.foto4, fornecedor_visual.data_cadastro, fornecedor_visual.latitude, fornecedor_visual.longitude, fornecedor_funcionamento.cod_forn_funcionamento, fornecedor_funcionamento.cod_fornecedor, fornecedor_funcionamento.aberto_dias, fornecedor_funcionamento.hora_inicio, fornecedor_funcionamento.hora_fim, fornecedor_funcionamento.data_cadastro, fornecedor_configura_frete.cod_configura_frete, fornecedor_configura_frete.cod_fornecedor, fornecedor_configura_frete.tem_delivery, fornecedor_configura_frete.custo_padrao, fornecedor_configura_frete.frete_gratis, fornecedor_configura_frete.valor_minimo_frete_gratis, fornecedor_configura_frete.tipos_pagamentos, fornecedor_configura_frete.prazo_entrega_min, fornecedor_configura_frete.prazo_entrega_max, fornecedor_configura_frete.agenda_comida, fornecedor_credito.cod_fornecedor_codigo, fornecedor_credito.cod_fornecedor, fornecedor_credito.qtd_credito FROM fornecedores INNER JOIN fornecedor_credito ON fornecedores.cod_fornecedor = fornecedor_credito.cod_fornecedor RIGHT OUTER JOIN fornecedor_visual ON fornecedores.cod_fornecedor = fornecedor_visual.cod_fornecedor RIGHT OUTER JOIN fornecedor_funcionamento ON fornecedores.cod_fornecedor = fornecedor_funcionamento.cod_fornecedor RIGHT OUTER JOIN fornecedor_configura_frete ON fornecedores.cod_fornecedor = fornecedor_configura_frete.cod_fornecedor WHERE (fornecedor_credito.qtd_credito >= '1') ORDER BY fornecedores.fantasia"; /** INNER JOIN fornecedor_tipo_entrega ON (fornecedores.cod_fornecedor = fornecedor_tipo_entrega.cod_fornecedor) TÁ FORA **/ if($result = $mysql->query($sql)){ $z=0; while ($data = $result->fetch_array()){ $rest_api[$z]['cod_fornecedor'] = $data['cod_fornecedor']; # id $abs_url_images = $config['abs_url_images'].'/'; $abs_url_videos = $config['abs_url_videos'].'/'; $abs_url_audios = $config['abs_url_audios'].'/'; if((substr($data['logomarca'], 0, 7)=='http://')||(substr($data['logomarca'], 0, 8)=='https://')){ $abs_url_images = $abs_url_videos = $abs_url_audios = ''; } /** TABELA FORNECEDORES **/ $rest_api[$z]['bairro'] = $data['bairro']; $rest_api[$z]['celular'] = $data['celular']; $rest_api[$z]['cep'] = $data['cep']; $rest_api[$z]['cidade'] = $data['cidade']; $rest_api[$z]['cnpj'] = $data['cnpj']; $rest_api[$z]['cod_fornecedor'] = $data['cod_fornecedor']; $rest_api[$z]['complemento'] = $data['complemento']; $rest_api[$z]['data_fundacao'] = $data['data_fundacao']; $rest_api[$z]['data_hora_cadastro'] = $data['data_hora_cadastro']; $rest_api[$z]['email'] = $data['email']; $rest_api[$z]['estado'] = $data['estado']; $rest_api[$z]['fantasia'] = $data['fantasia']; $rest_api[$z]['ie'] = $data['ie']; $rest_api[$z]['logradourro'] = $data['logradourro']; $rest_api[$z]['numero'] = $data['numero']; $rest_api[$z]['qtd_entregadores'] = $data['qtd_entregadores']; $rest_api[$z]['razao_social'] = $data['razao_social']; $rest_api[$z]['responsavel_contato'] = $data['responsavel_contato']; $rest_api[$z]['telefone_empresa'] = $data['telefone_empresa']; $rest_api[$z]['telefone_responsavel'] = $data['telefone_responsavel']; /** TABELA FORNECEDOR_VISUAL **/ $rest_api[$z]['cod_fornecedor'] = $data['cod_fornecedor']; $rest_api[$z]['cod_fornecedor_visual'] = $data['cod_fornecedor_visual']; $rest_api[$z]['data_cadastro'] = $data['data_cadastro']; $rest_api[$z]['descricao_empresa'] = $data['descricao_empresa']; $rest_api[$z]['facebook'] = $data['facebook']; $rest_api[$z]['foto1'] = $abs_url_images . $data['foto1']; # images $rest_api[$z]['foto2'] = $abs_url_images . $data['foto2']; # images $rest_api[$z]['foto3'] = $abs_url_images . $data['foto3']; # images $rest_api[$z]['foto4'] = $abs_url_images . $data['foto4']; # images $rest_api[$z]['instagram'] = $data['instagram']; $rest_api[$z]['latitude'] = $data['latitude']; $rest_api[$z]['localizacao_mapa'] = $data['localizacao_mapa']; $rest_api[$z]['logomarca'] = $abs_url_images . $data['logomarca']; # images $rest_api[$z]['longitude'] = $data['longitude']; $rest_api[$z]['site'] = $data['site']; $rest_api[$z]['twitter'] = $data['twitter']; $rest_api[$z]['youtube'] = $data['youtube']; /** TABELA FORNECEDOR_FUNCIONAMENTO **/ $rest_api[$z]['aberto_dias'] = $data['aberto_dias']; $rest_api[$z]['cod_forn_funcionamento'] = $data['cod_forn_funcionamento']; $rest_api[$z]['cod_fornecedor'] = $data['cod_fornecedor']; $rest_api[$z]['data_cadastro'] = $data['data_cadastro']; $rest_api[$z]['hora_fim'] = $data['hora_fim']; $rest_api[$z]['hora_inicio'] = $data['hora_inicio']; /** TABELA FORNECEDOR_CONFIGURA_FRETE **/ $rest_api[$z]['agenda_comida'] = $data['agenda_comida']; $rest_api[$z]['cod_configura_frete'] = $data['cod_configura_frete']; $rest_api[$z]['cod_fornecedor'] = $data['cod_fornecedor']; $rest_api[$z]['custo_padrao'] = $data['custo_padrao']; $rest_api[$z]['frete_gratis'] = $data['frete_gratis']; $rest_api[$z]['prazo_entrega_max'] = $data['prazo_entrega_max']; $rest_api[$z]['prazo_entrega_min'] = $data['prazo_entrega_min']; $rest_api[$z]['tem_delivery'] = $data['tem_delivery']; $rest_api[$z]['tipos_pagamentos'] = $data['tipos_pagamentos']; $rest_api[$z]['valor_minimo_frete_gratis'] = $data['valor_minimo_frete_gratis']; /** TABELA FORN_AVALIACAO_USER **/ $rest_api[$z]['cod_avaliacao'] = $data['cod_avaliacao']; $rest_api[$z]['cod_cliente'] = $data['cod_cliente']; $rest_api[$z]['cod_fornecedor'] = $data['cod_fornecedor']; $rest_api[$z]['comments'] = $data['comments']; $rest_api[$z]['data_avaliacao'] = $data['data_avaliacao']; $rest_api[$z]['stars_atendimento'] = $data['stars_atendimento']; $rest_api[$z]['stars_entrega'] = $data['stars_entrega']; $rest_api[$z]['stars_prato'] = $data['stars_prato']; /** TABELA FORN_AVALIA_REPLICA **/ $rest_api[$z]['cod_avaliacao'] = $data['cod_avaliacao']; $rest_api[$z]['cod_cliente'] = $data['cod_cliente']; $rest_api[$z]['cod_fornecedor'] = $data['cod_fornecedor']; $rest_api[$z]['cod_replica'] = $data['cod_replica']; $rest_api[$z]['data_repply'] = $data['data_repply']; $rest_api[$z]['repply'] = $data['repply']; $abs_url_images = $config['abs_url_images'].'/'; $abs_url_videos = $config['abs_url_videos'].'/'; $abs_url_audios = $config['abs_url_audios'].'/'; if((substr($data['foto1'], 0, 7)=='http://')||(substr($data['foto1'], 0, 8)=='https://')){ $abs_url_images = $abs_url_videos = $abs_url_audios = ''; } $rest_api[$z]['foto1'] = $abs_url_images . $data['foto1']; # images $abs_url_images = $config['abs_url_images'].'/'; $abs_url_videos = $config['abs_url_videos'].'/'; $abs_url_audios = $config['abs_url_audios'].'/'; if((substr($data['foto2'], 0, 7)=='http://')||(substr($data['foto2'], 0, 8)=='https://')){ $abs_url_images = $abs_url_videos = $abs_url_audios = ''; } $rest_api[$z]['foto2'] = $abs_url_images . $data['foto2']; # images $abs_url_images = $config['abs_url_images'].'/'; $abs_url_videos = $config['abs_url_videos'].'/'; $abs_url_audios = $config['abs_url_audios'].'/'; if((substr($data['foto3'], 0, 7)=='http://')||(substr($data['foto3'], 0, 8)=='https://')){ $abs_url_images = $abs_url_videos = $abs_url_audios = ''; } $rest_api[$z]['foto3'] = $abs_url_images . $data['foto3']; # images $abs_url_images = $config['abs_url_images'].'/'; $abs_url_videos = $config['abs_url_videos'].'/'; $abs_url_audios = $config['abs_url_audios'].'/'; if((substr($data['foto4'], 0, 7)=='http://')||(substr($data['foto4'], 0, 8)=='https://')){ $abs_url_images = $abs_url_videos = $abs_url_audios = ''; } $rest_api[$z]['foto4'] = $abs_url_images . $data['foto4']; # images $z++; } $result->close(); } break; case "route": $rest_api["routes"][0]["namespace"] = "promoes"; $rest_api["routes"][0]["methods"][] = "GET"; $rest_api["routes"][0]["_links"]["self"] = $_SERVER["PHP_SELF"]."?json=promoes"; $rest_api["routes"][1]["namespace"] = "restaurantes"; $rest_api["routes"][1]["methods"][] = "GET"; $rest_api["routes"][1]["_links"]["self"] = $_SERVER["PHP_SELF"]."?json=restaurantes"; break; } header('Content-type: application/json'); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Origin: http://localhost:8100'); echo json_encode(utf8ize($rest_api));