Ir ao conteúdo
  • Cadastre-se

joseph_dev

Membro Pleno
  • Posts

    108
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de joseph_dev em Descobrir IP pelo nome do computador foi marcado como solução   
    Pode ser o ping como Cadu postou e também o nslookup nome_do_pc. Ambos pelo prompt de comando e fazendo parte de um domínio.
  2. O post de joseph_dev em Como usar o valor NULL em SQL foi marcado como solução   
    A grosso modo, você usa ele quando tem um campo que não tem um valor obrigatório ou que você só vai preencher ele depois. E para não armazenar um valor como um varchar em branco, uma data falsa ou 0 (quando não tem valor definido), você usa o NULL para não ocupar muito espaço no banco.
    Ex.
    Tabela FUNCIONARIO
    ID        NOME           SEXO          DATA_ADMISSAO            DATA_DEMISSAO
    5          JOÃO               M                   01/01/2018                             NULL
    12        MARIA              F                   01/01/2019                          01/10/2020
    19        PEDRO            M                   01/01/2020                             NULL
  3. O post de joseph_dev em iPhone 7 hora com sinal hora sem sinal de chip foi marcado como solução   
    Cara, um colega meu tem um com esse mesmo problema. Segundo ele, é um problema de série desse modelo (Iphone 7) que acontece em certos lotes. A Apple liberou um recall para a troca da placa gratuitamente, porém o celular não pode ter sido aberto fora da Apple. É bom levar na Apple e verificar a sua situação. Caso preencha os requisítos eles vão fazer a troca gratuitamente.
    No caso do meu colega, ele foi lá e a Apple verificou que ele já havia aberto o aparelho fora da autorizada e ele não conseguiu fazer o recall. Então, de tempo em tempo ele fica sem rede/internet móvel rsrs.
  4. O post de joseph_dev em Sessions diferentes para cada nível de acesso foi marcado como solução   
    Seu site tem um controlador que gerencia as rotas? Se não tem, o mais simples é você verificar o nível do usuário em cada uma das 3 páginas do seu site.
    Ex na página administrador.php:
    if($_SESSION['nivel'] != "1"){ exit('Você não tem permissão para acessar essa página.'); }  
    Tem outras formas mais elegantes de fazer isso, mas se tratando apenas de um projeto de CRUD, acredito que didático, já resolve a situação.
  5. O post de joseph_dev em Calculadora dentro do blog foi marcado como solução   
    Mude o método html() por val() no trecho do switch:
    switch (true) { case (cargaAlar <= 1.1): $(".experiencia").val("Iniciante"); break; case (cargaAlar > 1.1 && cargaAlar <= 1.3): $(".experiencia").val("Intermediário"); break; case (cargaAlar > 1.3 && cargaAlar <= 1.5): $(".experiencia").val("Avançado"); break; case (cargaAlar > 1.5): $(".experiencia").val("Experiente"); break; default: console.log('Desculpe, houve erro no cálculo, tente novamente.'); }  
  6. O post de joseph_dev em Botão para imprimir conteúdo de divs respectivas foi marcado como solução   
    Pelo que pude entender aí, esse trecho que monta os cards está gerando várias div com o mesmo id.
    A solução mais rápida eu acho que é:
    1- Gerar um id dinâmico com o número do pedido (Acredito que sejam únicos). Concatenando a string "conteudo-" com o vnumeroPedido.
    2- Mudar a função imprimir. Concatenando com o vnumeroPedido passado por parâmetro.
    3- Atribuir a função imprimir no onclick do input já passando o vnumeroPedido.
     
    1
    <div class='card border-primary mb-2 mr-1 col-md-12' id='conteudo-'.$vnumeroPedido.'> ...  
    2
    <script> imprimir = function(vnumeroPedido) { var conteudo = document.getElementById('conteudo-'+vnumeroPedido).innerHTML, tela_impressao = window.open('about:blank'); tela_impressao.document.write(conteudo); tela_impressao.window.print(); tela_impressao.window.close(); } </script>  
    3
    <input type='button' value='Imprimir' class='btn btn-primary btn-md btn-block' onclick='imprimir($vnumeroPedido)' />  
    Só verifica a concatenação pois não tive como testar aqui.
     
    *No seu código, a linha que tem o button imprimir tem uma aspas sobrando perto de onde fecha a tag. Remove ela.
  7. O post de joseph_dev em Query SQL para procedimento Otimizar foi marcado como solução   
    Quando você usa o MAX() sem agrupar por algum campo (GROUP BY) automaticamente o mysql entende que você está agrupando no geral. Por isso só retorna o maior campo desse geral e agrupa todos os resultados em um.
     
    Pelos campos dessa consulta eu acredito que você precisa fazer um LEFT com vendascartao (já que ele pode retornar NULL):
    SELECT car.Codigo, MAX(Uid), MAX(Serial), MAX(ConvenioId), MAX(ConvenioNome), MAX(UtilizadorId), MAX(UtilizadorNome), MAX(car.CartaoNumero), MAX(Ativado), MAX(DtCadastro), MAX(DtUltPassagem), MAX(Historico), MAX(Senha), MAX(Bloqueado), MAX(VeiculoId), MAX(car.Placa), MAX(car.MarcaModelo), CONCAT(MAX(vei.AnoFab), "/",MAX(vei.AnoMod)) AS Ano, MAX(IFNULL(vca.VeiculoKM, KmInicial)) AS UltimoKM, /*se der erro tente assim: IFNULL(MAX(vca.VeiculoKM), MAX(KmInicial)) AS UltimoKM --não tive como testar*/ MAX(fun.Codigo) AS MotoristaCodigo, MAX(fun.Nome) AS MotoristaNome, MAX(fun.CPF) AS MotoristaCPF FROM cartoes car JOIN veiculos vei ON vei.Codigo = car.VeiculoId JOIN funcionarios fun ON fun.Codigo = vei.MotoristaCodigo LEFT JOIN vendascartao vca ON vca.VeiculoCodigo = car.VeiculoId GROUP BY car.Codigo Só tem que ver os campos do agrupador pois não sei a definição de sua consulta e nem o seu modelo... Estou sugerindo pelo que pude analisar no seu código. Nesse caso aí ele vai agrupar por cada cartão e vai trazer os campos do cartão, o carro utilizado, o funcionário cadastrado e vai trazer o maior registro VeiculoKm da vendascartao caso tenha algum.
     
    *Quando você usa o GROUP BY, para todos os campos que não estão no agrupador (na linha GROUP BY) você precisa usar o MAX() ou MIN() ou até AVG(), SUM(), etc, a depender de sua necessidade, é claro. Na maioria das vezes o MAX() é usado pois o campo vai ter o mesmo valor no agrupamento.
     
    *Eu não consegui identificar a tabela de cada campo no select. Depois coloque o alias de cada tabela em cada campo. É uma boa prática.
    Ex:
    Para campos da tabela cartoes o alias está car (eu defini aí mas você escolhe).
    Para campos da tabela funcionarios o alias está fun (eu defini aí mas você escolhe).
    Logo, no select, eu faço a seguinte referência:
    SELECT car.codigo, car.descricao, fun.codigo, fun.nome ... FROM cartoes car JOIN funcionarios fun ON fun.codigo = car.codfuncionario WHERE car.codigo = 10  
    *Não sei qual a versão do seu MYSQL, mas dê preferência em usar caixa alta (maiúsculas) pelo menos nas palavras reservadas do SQL. Nos campos das tabelas, use como está definido no banco (maiúscula ou minúscula).
     
    Se não funcionar de primeira eu acredito que com um pequeno ajuste ao seu modelo já funcione.
  8. O post de joseph_dev em Espaço em branco no layout da tela e barra horizontal no site foi marcado como solução   
    Ao invés de usar css para customizar sua tela, use as tags e as classes do bootstrap e suas variações de classes para organizar ela. Use o css apenas para o excepcional mesmo. Isso vai ajudar na responsividade. Pela estrutura do seu site, dá para fazer quase tudo sem css. Qual versão do bootsrap você tá usando?
  9. O post de joseph_dev em O que significa "nome.innerHTML. " foi marcado como solução   
    Essa propriedade corresponde ao conteúdo html do elemento em questão.
    Ex:
    <div> <span>Meu conteúdo.</span> </div> Quando você "pega" o innerHTML dessa div acima você tem: "<span>Meu conteúdo.</span>". E quando você atribui um valor/conteúdo, você "coloca" dentro das tags <div></div>, substituindo o atual.
    Porém essa função no seu código está incompleta. A variável nome deveria se referir ao elemento <p>. Você precisa atribuir a ela usando a função nativa do javascript getElementById.
    <script> function escreverNome() { var nome = document.getElementById("nome"); nome.innerHTML = "Jorge Toscano"; } </script> E algum elemento (um botão...) deve disparar essa função, ou então colocar no onload da página para assim que carregar a página executar a função.
  10. O post de joseph_dev em URL Amigável com PHP foi marcado como solução   
    Você pode pesquisar pelos frameworks de backend... symfony, cake, entre outros... Eles já tem estrutura pronta para isso. Você só configura as routes/annotations do seu ambiente e o framework faz tudo sozinho.
    Caso você queira fazer isso do zero, você vai precisar criar uma classe que recebe todas as requisições e através da URL, faz a quebra da string e direciona para a respectiva classe (arquivo) php.
    Você tá querendo criar um ou configurar uma estrutura pronta?
  11. O post de joseph_dev em URL Amigável com PHP foi marcado como solução   
    Você pode pesquisar pelos frameworks de backend... symfony, cake, entre outros... Eles já tem estrutura pronta para isso. Você só configura as routes/annotations do seu ambiente e o framework faz tudo sozinho.
    Caso você queira fazer isso do zero, você vai precisar criar uma classe que recebe todas as requisições e através da URL, faz a quebra da string e direciona para a respectiva classe (arquivo) php.
    Você tá querendo criar um ou configurar uma estrutura pronta?
  12. O post de joseph_dev em Relacionamento entre 3 tabelas foi marcado como solução   
    Fala, @leo18vn !
     
    Você deve fazer referencia às chaves das tabelas do join que você está associando... nesse caso, produtos e clientes...  você associou à chaves da própria tabela de compras...
     
    Você fez assim:
    SELECT clientes.nome, produtos.produtos, compras.data_compra FROM compras INNER JOIN produtos ON compras.id_compra = produtos.id_produto INNER JOIN clientes ON compras.id_compra = clientes.id_cliente WHERE id_compra = '1'; Deveria ser assim:
    SELECT clientes.nome, produtos.produtos, compras.data_compra FROM compras INNER JOIN produtos ON compras.id_produto = produtos.id_produto INNER JOIN clientes ON compras.id_cliente = clientes.id_cliente WHERE id_compra = '1'; Veja as chaves dos joins... Percebeu as chaves que foram associadas?
    Veja se era isso...
    adicionado 7 minutos depois Por isso que só trazia o ID 1 de cada tabela... porque na tabela compras só tem o ID 1 e você disse nos JOINs que quer os produtos com ID igual a 1 e clientes com ID igual a 1. Que é o valor do ID da compra.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...