Jump to content
Sign in to follow this  
DeanPage

Consulta Categoria - Subcategoria - ComboBox

Recommended Posts

Estou com dificuldade em fechar essa lógica da busca...

Preciso exibir no combobox a categoria e a subcategoria de determinado produto...

Tenho no banco as tabelas, com algumas linhas básicas...

 

Categoria

Subcategoria

Produto

 

 

Com esse SELECT a baixo, tem retornado certinho todas as categorias e as subcategorias devidas,,,,

 

porém, somente na categoria, ele tem repetido a categoria do produto N vezes (aparentemente o número de subcategorias da categoria)

 

 

SELECT categoria.categoria, categoria.idcategoria, subcategoria.idsubcategoria, subcategoria.subcategoria_idcategoria, produto.categoria_idcategoria, produto.subcategoria_idsubcategoria

 

FROM produto

 

LEFT JOIN categoria ON categoria.idcategoria = produto.categoria_idcategoria

 

LEFT JOIN subcategoria ON subcategoria.subcategoria_idcategoria = categoria.idcategoria WHERE produto.idproduto = $IDproduto

 

 

 

 

Alguém teria alguma idéia de correção ou alguma caso a mostrar com esse objetivo... já procurei muito, mas nada funciona!

Share this post


Link to post
Share on other sites

Bom dia DeanPage,

Isso acontece porque o produto não precisa ter armazenado o id da categoria, ele só precisa do id da sub-categoria,

e a partir deste id você pega a categoria, desta forma:

SELECT c.categoria, c.idcategoria, b.idsubcategoria, b.subcategoria_idcategoria, a.categoria_idcategoria, a.subcategoria_idsubcategoria
FROM produto a
LEFT JOIN subcategoria b ON b.subcategoria_idcategoria = a.subcategoria_idsubcategoria
LEFT JOIN categoria c ON b.subcategoria_idcategoria = a.categoria_idcategoria
WHERE a.idproduto = $IDproduto

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Elias.Lôgan-X
      O código em JS abaixo alimenta o combobox "programas" de acordo com a escolha no combox "regioes".
      Como faço para ele alimentar outros 2 combobox ao mesmo tempo usando outra lista JSON?
      Além de alimentar o combox programas com a lista regiao-programas.json, preciso que alimente o combobox municipio1 e municipio2 usando a lista combox-municipios.json
       
      $(document).ready(function(){ $.getJSON('SIGPLAM2/javaScript/lista-regiao-programas.json', function(data){ var items = []; var options = '<option value="">escolha uma região</option>'; $.each(data, function(key, val){ options += '<option value="' + val.nome + '">' + val.nome + '</option>'; }); $("#regioes").html(options); $("#regioes").change(function(){ var options_programas = ''; var str = ""; $("#regioes option:selected").each(function(){ str += $(this).text(); }); $.each(data, function(key, val){ if(val.nome == str){ $.each(val.cidades, function(key_city, val_city){ options_programas += '<option value="' + val_city + '">' + val_city + '</option>'; }); } }); $("#programas").html(options_programas); }).change(); }); });  
    • By FabianoSouza
      Tenha a tab A (tabela pai) e a tab B (tabela filha).
      Quero saber como "mesclar" num SELECT os valores de um campo específico da tabela B com os campos já exibidos da tabela A numa única linha.
       
      Que ficasse uma linha mais ou menos assim:
       
      LINHA:
      _______________________________________________________________________________________________________________
      NomeCompleto (da tab A) | Salario (da tab A) | Idade (da tab A) | Fotos (foto1.jpg, foto2.jpg, foto3.jpg... da tab B)
      _______________________________________________________________________________________________________________
       
       
      O caractére separador no campo Fotos por ser vírgula, hífen, etc.
    • By Mauricio Molina
      Boa tarde.
       
      Ainda sou iniciante, se puderem me ajudar agradeço!
       
      Estou com uma dificuldade em manter a opção selecionada no  campo select, após salvar os dados em duas situações distintas:
       
      O que mais preciso fazer?
       
      <div class="col-md-2 col-sm-2 col-xs-7"> <div class="form-group"> <label for="config_horario_domingoferiado">Domingo e Feriado<span class="text-danger">*</span></label> <select name="config_horario_domingoferiado" id="config_horario_domingoferiado" class="form-control" value="<?= $data['config']->config_horario_domingoferiado ?>" required> <option>Aberto</option> <option>Fechado</option> </select> </div> </div> <div class="col-md-3 col-sm-3 col-xs-12"> <div class="form-group"> <label for="imovel_financ">Bandeiras<span class="text-danger">*</span></label> <select name="imovel_financ" id="imovel_financ" class="form-control"> <option value=" ">Selecione...</option> <option value="Aceita Financiamento">Aceita Financiamento</option> <option value="Alugado">Alugado</option> <option value="Frente para Mar">Frente para Mar</option> <option value="Lançamento">Lançamento</option> <option value="Oportunidade">Oportunidade</option> </select> </div> </div>  
    • By asacap1000
      Galera salve a todos.
       
      Gostaria de saber se é possivel e se for como fazer.  Tenho um select de faturamento, e nesta consulta ele me traz o numero da NF, ele me traz os ítens faturados. Gostaria de saber se´no próprio select é possível trazer o numero da NF apenas uma vez, e nas outras linhas que estarão vindo os ítens cobrados estes campos ficarem vazios.
       
      Segue exemplo hoje como está e como eu preciso.
       

       
      Como eu preciso:
       

       
       
      Abaixo o select
       
      SELECT A.ID_KLIENT COD, K.NAME NOME, A.BILLITE ITEM, I.DESCRIPTION DESC_ITEM, SUM(A.MNG) QUANT, SUM(ROUND(A.PREIS, 3)) VALOR, BO.NR_NF NF FROM BILL_OS_ITEM A, BILL_ITEM I, KLIENTEN K, BILL_OS BO, (SELECT T.DOCSVE_REF, D.DOCHD_DOC_ID FROM FISCAL.DOCSVE T, FISCAL.DOCHD D WHERE T.DOCSVE_DOC_PRC_ID = D.DOCHD_DOC_PRC_ID) REFE WHERE I.BILLITE = A.BILLITE AND A.ID_KLIENT = K.ID_KLIENT AND BO.NR_NF = REFE.DOCHD_DOC_ID(+) AND BO.ID_KLIENT = K.ID_KLIENT AND BO.STATUS <> '80' AND BO.ID_OS = A.ID_OS AND TRUNC(BO.DATE_EMISS) >= TO_DATE('01/09/2019', 'DD/MM/YYYY') AND TRUNC(BO.DATE_EMISS) <= TO_DATE('30/09/2019', 'DD/MM/YYYY') GROUP BY A.ID_KLIENT, K.NAME, A.BILLITE, I.DESCRIPTION, BO.NR_NF, BO.LOTE, REFE.DOCSVE_REF ORDER BY K.NAME, A.ID_KLIENT, A.BILLITE  
    • By EltonRodrigo
      Eu tenho um formulário com todos os campos desativados com exceção do primeiro. Ao preencher o primeiro campo, se o valor existir no banco de dados todos os campos devem ser ativados. Fiz isso utilizando o evento blur do jquery. O problema é  que o segundo campo é um select, quando clico nesse campo os mesmos não são ativados, mas se clicar no terceiro campo que é um input=text funciona. Eu não posso inverter a ordem dos campos. Segue o código:
       
      <div class="form-group"> <input type="text" class="form-control form-control-sm" name="txt_dd_n_fogo" id="txt_dd_n_fogo" required placeholder="Nº de fogo do pneu"> </div> <div class="form-group"> <select class="form-control form-control-sm" name="txt_dd_marca" id="txt_dd_marca" required disabled> <option value="">Marca do pneu</option> <option value="BRIDGESTONE">BRIDGESTONE</option> <option value="CENTAURO">CENTAURO</option> <option value="CONTINENTAL">CONTINENTAL</option> <option value="FATE">FATE</option> <option value="FIRESTONE">FIRESTONE</option> <option value="GOODYEAR">GOODYEAR</option> <option value="KUMHO">KUMHO</option> <option value="LANDE">LANDE</option> <option value="MARSHAL">MARSHAL</option> <option value="MAGGION">MAGGION</option> <option value="MASTER">MASTER</option> <option value="MICHELIN">MICHELIN</option> <option value="PIRELLI">PIRELLI</option> <option value="SEIBERLING">SEIBERLING</option> <option value="TOYO">TOYO</option> <option value="YOKOHAMA">YOKOHAMA</option> </select> </div> <div class="form-group"> <select class="form-control form-control-sm" name="txt_dd_medida" id="txt_dd_medida" required disabled> <option value="">Medida do pneu</option> <option value="205/75">205/75</option> <option value="215/75">215/75</option> <option value="215/75.17.5">215/75.17.5</option> <option value="215/80">215/80</option> <option value="235/75">235/75</option> <option value="275/70">275/70</option> <option value="275/80">275/80</option> <option value="295/80">295/80</option> <option value="385/65">385/65</option> <option value="750/16">750/16</option> <option value="900/20">900/20</option> <option value="1000/20 comum">1000/20 comum</option> <option value="1000/20 radial">1000/20 radial</option> <option value="1100/20">1100/20</option> </select> </div> <div class="form-group"> <input type="text" class="form-control form-control-sm" name="txt_dd_mm" id="txt_dd_mm" placeholder="Milímetro(Atual)" disabled> </div> <div class="form-group"> <!-- <label for="txt_de_km">KM</label> --> <input class="form-control form-control-sm" type="text" name="txt_dd_km" id="txt_dd_km" placeholder="KM" required disabled> </div> <div class="form-group"> <select class="form-control form-control-sm" name="txt_dd_estado" id="txt_dd_estado" required disabled> <option value="">Estado do pneu</option> <option value="NOVO">NOVO</option> <option value="NOVO USADO">NOVO USADO</option> <option value="NOVO CONSERTADO">NOVO CONSERTADO</option> <option value="1ª RESSOLAGEM">1ª RESSOLAGEM</option> <option value="2ª RESSOLAGEM">2ª RESSOLAGEM</option> <option value="3ª RESSOLAGEM">3ª RESSOLAGEM</option> <option value="4ª RESSOLAGEM">4ª RESSOLAGEM</option> <option value="COM AVARIAS">COM AVARIAS</option> <option value="DESCARTADO">DESCARTADO</option> <option value="RESSOLADO CONSERTADO">RESSOLADO CONSERTADO</option> <option value="VULCANIZAR">VULCANIZAR</option> </select> </div> <div class="form-group"> <textarea class="form-control" name="txt_dd_obs" id="txt_dd_obs" rows="2" placeholder="Observações" disabled></textarea> </div> <div class="custom-file"> <input type="file" name="txt_dd_img" class="custom-file-input" id="txt_dd_img" lang="pt-br" onchange="readURLdd(this);" disabled> <label class="custom-file-label" for="customFile">Escolha uma imagem</label> </div> <input type="submit" class="btn btn-primary" name="bt_dd" id="bt_salvar" value="Salvar" hidden>  
      $(function(){ $("input[name='txt_dd_n_fogo']").blur( function(){ var txt_dd_n_fogo = $("input[name='txt_dd_n_fogo']").val(); $.post('posicoes/function.php',{txt_dd_n_fogo: txt_dd_n_fogo},function(data){ if( data!='Não existe ainda!' ){ alert(data); $("input[name='txt_dd_n_fogo']").val(''); $("#txt_dd_marca").prop("disabled", true); $("#txt_dd_medida").prop("disabled", true); $("#txt_dd_mm").prop("disabled", true); $("#txt_dd_data").prop("disabled", true); $("#txt_dd_km").prop("disabled", true); $("#txt_dd_estado").prop("disabled", true); $("#txt_dd_obs").prop("disabled", true); $("#txt_dd_img").prop("disabled", true); $("#bt_salvar").prop("hidden", true); }else{ $("#txt_dd_marca").prop("disabled", false); $("#txt_dd_medida").prop("disabled", false); $("#txt_dd_mm").prop("disabled", false); $("#txt_dd_data").prop("disabled", false); $("#txt_dd_km").prop("disabled", false); $("#txt_dd_estado").prop("disabled", false); $("#txt_dd_obs").prop("disabled", false); $("#txt_dd_img").prop("disabled", false); $("#bt_salvar").prop("hidden", false); } }); }); }); Tentei criar um botão hidden sobre os todos os campos, ao ser clicado o mesmo ficava como hidden e habilitava todos os campos, até deu certo, mas ao preencher o campo nº de fogo novamente ele não executa mais a função de verificação. Precisa ficar bem amarrado, caso o usuário digite um nº que já existe os campos precisam ficar desabilitados.
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.