Ir para conteúdo
Priscila Neu

Criando WebService / Api com Relacionamento de Tabelas

Recommended Posts

Boa noite,

 

Por favor, uma ajuda, sou nova em programação e estou precisando fazer um relacionamento de tabela mysql, com retorno em json, eu tentei o seguinte código, mas está com erros.

Já pesquisei muito no google e youtube, mas não consegui achar nada parecido.

<?php
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json; charset=utf-8');

$con = new mysqli('mysql.meusite.com.br', 'meubanco', 'senha', 'meubanco');
if (mysqli_connect_errno()) trigger_error(mysqli_connect_error());
    $sql = "SELECT refeicao.nome, refeicao.id FROM refeicao_refeicao AS refeicao
                INNER JOIN refeicao_alimento AS opcao
                INNER JOIN alimentos_refeicao AS cardapio
                WHERE cardapio.id_refeicao = refeicao.id
                AND cardapio.id_alimentos = opcao.id
                GROUP BY refeicao.id";
    $query = mysql_query($sql);
    $arr = Array();
        
        if(mysql_num_rows($query)){
            while($dados = mysql_fetch_object($query)){
                $arr[0] = $dados->id;
                $arr[1] = $dados->nome;
                $arr[2] = $id_refeicao;
        }
            $sql2 = "SELECT refeicao_alimento.nome
                FROM refeicao_alimento 
                INNER JOIN refeicao_refeicao
                INNER JOIN alimentos_refeicao
                WHERE alimentos_refeicao.id_alimentos = refeicao_alimento.id
                AND alimentos_refeicao.id_refeicao = $id_refeicao
                GROUP BY refeicao_alimento.id";
            $query2 = mysql_query($sql2);
            $arr2 = Array();
        
            if(mysql_num_rows($query)){
                while($dados2 = mysql_fetch_object($query)){
                    $arr2[0] = $dados2->nome;
            }
  
    
    }    
echo json_encode();
//print_r($JSON);
}
?>

 

<br />
<b>Warning</b>:  mysql_query(): No such file or directory in <b>/home/qualitserv/www/api/apiCardapios.php</b> on line <b>16</b><br />
<br />
<b>Warning</b>:  mysql_query(): A link to the server could not be established in <b>/home/qualitserv/www/api/apiCardapios.php</b> on line <b>16</b><br />
<br />
<b>Warning</b>:  mysql_num_rows() expects parameter 1 to be resource, boolean given in <b>/home/qualitserv/www/api/apiCardapios.php</b> on line <b>20</b><br />

Eu já uso essa mesma estrutura sql no meu sistema onde cadastro os dados, mas acredito que para api, deve funcionar de forma diferente! Obrigada!

 

Editado por Gabriel Heming
adicionar marcação de código

Compartilhar este post


Link para o post
Compartilhar em outros sites

em principio estão sendo misturados comandos mysqli* e mysql*,
estes ultimos foram removidos e não devem mais ser usados; t aconselho padronizar.

Aqui:
https://forum.imasters.com.br/topic/542539-atenção-orientações-e-regras-do-fórum-de-php/

tem outras dicas boas, atenção às mensagens de erro.

ah, sobre relacionamento tem umas dicas aqui:

http://trocadicas.blogspot.com.br/2016/03/relacionando-tabelas-em-bancos-de-dados_10.html

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
22 horas atrás, Fernando C disse:

em principio estão sendo misturados comandos mysqli* e mysql*

 

Bem visto, não reparei nesse pormenor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por MateusOFCZ
      Olá, estou desenvolvendo um sistema de publicidade para meu site, e quando entra em uma página, vamos chama-la de "Publicidade" ele mostra uma publicidade e depois de 10 segundos ele redireciona (OBS.: Essa página já está funcionando 100%), e temos outra página que vamos chama-la de "Início", bom... Quando você entrar na página "Início" ele irá na verdade, redirecionar o usuário para a página de Publicidade, porém, como faço para a pessoa não poder pular essa publicidade, como se fosse um camuflador de página, ou seja, se o usuário acessar a página ele irá para a página "imasters.com.br/publicidade", porém se ele alterar o link para "imasters.com.br/inicio" ele irá obrigar o usuário a ver a publicidade primeiro para depois leva-lo a página de "Inicio", caso isso seja complexo de fazer, teria alguma forma de esconder o nome da página (a parte do "/inicio" por exemplo), e deixar apenas o link, por exemplo, se eu ir para a página de publicidade irá aparecer apenas o link, neste caso "imasters.com.br", e não "imasters.com.br/publicidade", caso tenha alguma dúvida sobre o meu pedido pode perguntar, não mordo rs.

      Deis de já agradeço!
    • Por martinazzo
      Olá pessoal,
       
      sou novo por aqui e não sei bem como funciona, mas sei que preciso de uma ajuda kkkkk
      se puderem me dar uma mão ficaria grato;
       
      Estou tendo problemas em como pegar id de uma linha clicada em uma table, que já recebe os dados de um bd. Eu gostaria de poder editar os campos e salvar no banco de dados usando o ID da linha clicada;
       
      Vou colar o código abaixo, não reparem na bagunça kkkkk
       
      conexao.php
      <?php $server = "XXXXX";         Conferido e esta correto; $username = "XXXXX";  Conferido e esta correto; $password = "XXXXX";  Conferido e esta correto; $dbname = "XXXXX";     Conferido e esta correto; $conn = mysqli_connect($server, $username, $password, $dbname); altera.php
      <?php  $link = mysqli_connect("XXXXXX", "XXXXX", "XXXXX", "XXXXXX"); Conferido $sql = "SELECT * FROM interface "; $consulta = mysqli_query($link, $sql); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="refresh" content="30"> <link rel="stylesheet" type="text/css" href="style.css"> <script src="sorttable.js"></script> <title>Dashboard</title> <?php  session_start(); if(!isset($_SESSION['login']) and !isset ($_SESSION['senha'])){     session_destroy();   unset($_SESSION['login']);   unset($_SESSION['senha']);   header('location:index.html');      }    ?> </head> <body> <a href="index.php"><img src="img/ditec_smart_hor_150px.png"></a> <div class="borda_titulo"> <h2><center>DIMILK | Equipamentos</font></h2></center></div><br /><br /> <form name="equipamento" action="salva.php" method=post> <center><table id="minhaTabela" border="3" class="sortable" bgcolor="#1E90FF">   <tr>   <th><center>ID </center></th>   <th><center>MAC</center></th>   <th><center>Habilitado</center></th>   <th><center>Descrição</center></th>   <th><center>Altura Tarro</center></th>   <th><center>Área Tarro</center></th>   <th><center>Alterar</center></th>   </tr>        <?php while($registro = mysqli_fetch_assoc($consulta)){         echo '<tr bgcolor="#ADD8E6" scope="row">';         echo '<td name="id"><center>'.$registro["id"].'</center></td>';         echo '<td name="mac"><center>'.$registro["mac"].'</center></td>';         echo '<td><center><input type="checkbox" name="status" value="$teste"><br></center></td>';         echo '<td id="linha_desc"><textarea name="desc" type=text placeholder="'.$registro["descricao"].'" /></textarea></td>';         echo '<td><input name="altura" type=text style="width: 70px;" placeholder="'.$registro["altura_latao"].' cm" /></td>';         echo '<td><input name="area" type=text style="width: 70px;" placeholder="'.$registro["area_latao"].' cm" /></td>';                  echo '<td><form method="get" action="salva.php"><center><button class="voltar" type="submit">Salvar</button></center></form><br />';         echo '</tr>';         }     echo '</tbody></table></form>';          ?></center><br />              <div>                         <form method="get" action="index.html">                     <center><button class="voltar" type="submit">Voltar</button></center></form>         </div>                                  <br />                 <footer class="borda_texto"><center>                 <img src="img/rodape_logo.png">                     2019 © <b>DITEC - Smart Solutions</b> - Todos os Direitos Reservados.                 <a class="px-4" href="https://www.ditecsc.com.br" target="_blank">Ditec - Smart Solution</a>                 </center></footer> </body> </html> salva.php
       
      <?php include('conexao.php'); include_once('altera.php');   // declaração de variáveis $id = 22; /*$id = $_GET['id']; $status = $_POST['status'];*/ $descricao = $_POST['desc']; $altura = $_POST['altura']; $area = $_POST['area'];   $up = mysqli_query($conn, "UPDATE interface SET descricao='$descricao', altura_latao='$altura', area_latao='$area' WHERE id=$id");    if(mysqli_affected_rows($conn) > 0){   echo '<center><h1><b>Sucesso</b></h1><br /> <h2>Atualizado!</h2></center>';   header("Refresh: 2;url=equipamentos.php"); }else{     echo '<center><h1><b>Erro</b></h1><br /> <h2>Não foi atualizado!</h2></center>';   header("Refresh: 2;url=altera.php"); }   mysqli_close($conn); ?> Do jeito que esta eu consigo alterar o id=22, mas não consegui pegar o id da linha sequente;
       
       
    • Por Diego Alexandre Dias
      Boa tarde,
       
      Estou tentando incluir uma formatação de moeda (number_format) dentro de um comando While, porém não estou tendo sucesso.
      Por Exemplo:
       
      Criei uma tabela simples que contempla a relação de clientes com seus respectivos valores de creditos adiquiridos
       
      Neste caso no corpo da tabela eu possuo três colunas:
       
      Valor_Credito , Cliente, status
       
      criei uma variável  $venda que recebe o resultado de uma query do meu banco de dados. Este mesmo resultado da query eu atribui uma variavel chamada $total .
      Esta mesma consulta se encarrega de somar o valor total de crédito adiquirido por cliente
       
      Sendo assim, meu WHILE percorre por todo minha tabela de clientes somando os respectivos creditos.
      Como resultado eu consigo retornar todas as informações que eu quero, porém não estou conseguindo fazer com que o valor de crédito saia com a formatação de moeda.
       
       

       
      O comando responsável por me trazer a relação de clientes  juntamente com  os créditos somados.  
               while ($venda = mysqli_fetch_assoc($total)) {                 echo '<tr>';                     echo '<td class="text-left">';                         echo $venda ['valor_credito'];       // Esta é a linha que preciso utilizar o number_format, porém tentei adaptá-lo de diferentes formas, mas não consegui.                     echo '<td>';                         echo $venda['Cliente'];                     echo '</td>';                                                 echo '<td class="text-right">';                         echo $venda['status'];                     echo '</td>';                 echo '</tr>';                        echo '</tbody>'; Agradeço desde já quem puder me ajudar.
    • Por rogfranz
      Olá pessoal! Então, estou desenvolvendo um projeto que pode tomar grandes proporções, e estou com uma dúvida que está me tirando o sono!

      Digamos que trata-se de um sistema de pedidos só pra usar como exemplo.

      Vários usuários vão poder se cadastrar no sistema e criar seus pedidos.

      Teremos então as tabelas

      usuarios
      pedidos
      pedido_itens
       
       
      minha dúvida está na seguinte questão.
      Uso bancos de dados separados para cada cliente ?  
      ou
      Uma tabela por exemplo dos pedidos vinculo o id do usuário para todos usuários do sistema ?

      POR FAVOR! Me Deem a opinião do que vocês fariam! e Por que!

      Trazendo para a realidade do meu projeto uma estimativa de volume de dados que eu imagino.
      Levando em conta que um usuário pode cadastrar a média de 10 "pedidos" no mês com aproximadamente 500 ítens

      Agradeço muito a contribuição de vocês!
    • Por pushline
      sou novo em php e to aprendendo ainda, e me deparei com esse algoritmo e estou travado, por favor alguém me ajude?
       
      Um posto de combustível vende três tipos de combustível: etanol, diesel e gasolina. O preço por
      litro de combustível e apresentado na tabela a seguir. Desenvolva em php e html uma página onde o
      usuário informe um caractere que representa o tipo de combustível comprado (e, d ou g) e a
      quantidade em litros. Ao final, a página deverá mostrar o valor total a ser pago pelo combustível.
      Combustível Preço por Litro
      E – Etanol R$ 3,505
      D – Diesel R$ 3,653
      G – Gasolina R$ 4,595
       
      todo o jeito de codigo q eu fiz ficou travado e nao foi
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.