Ir para conteúdo

manolegal

Members
  • Total de itens

    574
  • Registro em

  • Última visita

Reputação

12 Levemente Bom

2 Seguidores

Sobre manolegal

  • Classificação
    Manolegal

Informações Pessoais

  • Sexo
    Masculino
  • Interesses
    PHP, Postgre, HTML, Javascript, CSS

Últimos Visitantes

1422556 visualizações
  1. manolegal

    [RESOLVIDO] Trazer valor correto da variável

    Problema resolvido. Criei a seguinte variável: $meus_ids_2 = implode(',', $meus_ids); E na consulta fiz a seguinte alteração: $Sql_lim = "SELECT SUM(CASE WHEN quantidade >= 11 then 10 else quantidade end) as quantidades_limite FROM minha_tabela WHERE id_lancamento IN ($meus_ids_2)"; $Resultado_lim = executa($Sql_lim); $total_registros_lim = @pg_num_rows($Resultado_lim); while ($linha_lim = @pg_fetch_assoc($Resultado_lim)){ $quantidade_limite_consulta = $linha_lim["quantidades_limite"]; } // Fecha "while"
  2. manolegal

    [RESOLVIDO] Trazer valor correto da variável

    Bom dia Tenho uma variável que traz vários dados de ID_LANÇAMENTO var_dump($meus_ids); array 0 => string '829' (length=3) 1 => string '830' (length=3) 2 => string '828' (length=3) Preciso fazer uma soma das quantidades constantes nestes 3 lançamentos e trazer em variável, porém variável está trazendo cada quantidade em separado, ao invés da soma. foreach($meus_ids as $item){ $Sql_lim = "SELECT SUM(CASE WHEN quantidade >= 11 then 10 else quantidade end) as quantidades_limite FROM minha_tabela WHERE id_lancamento = $item"; $Resultado_lim = executa($Sql_lim); $total_registros_lim = @pg_num_rows($Resultado_lim); while ($linha_lim = @pg_fetch_assoc($Resultado_lim)){ $quantidade_limite_consulta = $linha_lim["quantidades_limite"]; } // Fecha "while" } // Fecha foreach Utilizo BD Postgresql. O total de linhas retornadas é 1, o que em tese está correto. O problema é que ao invés de trazer a soma das quantidades, a variável está trazendo cada quantidade individualizada por lançamento. Onde posso estar errando?
  3. manolegal

    Leitura de vários arquivos em sequência

    Bom dia. Preciso ler e gravar vários arquivos .txt em sequência. Lendo somente 1 arquivo estou conseguindo: $caminho = ("C:/meu_diretorio"); $arquivo = fopen ("$caminho/um_arquivo.txt" , 'r'); while(!feof($arquivo)) { $linha = fgets($arquivo); $tr = substr($linha, 0, 2); $tr_3 = substr($linha, 0, 3); $Sql_cab = "INSERT INTO ..."; } Porém, preciso adaptar para mais de um arquivo. Estou tentando da seguinte forma, porém não estou conseguindo: $caminho = ("C:/meu_diretorio"); $arquivos = array_values(array_filter(scandir($caminho), function($arquivo) use ($caminho) { return !is_dir($caminho . '/' . $arquivo); })); foreach($arquivos as $arquivo){ $teste = fopen ($arquivo, 'r'); while(!feof($teste)) { $linha[] = fgets($teste); // seria isto? $tr = substr($linha, 0, 2); $tr_3 = substr($linha, 0, 3); $Sql_cab = "INSERT INTO ..."; } } Preciso ler o primeiro arquivo e gravar no BD, depois o segundo arquivo e assim por diante. Desde já agradeço pela ajuda.
  4. manolegal

    [RESOLVIDO] Ajax - Problema ao enviar requisição por jquery

    Bom dia. Seguindo sua sugestão, alterei código para: <script type="text/javascript"> $(document).ready(function(){ $('select').change(function(){ var resp = $('#resp option:selected').val(); $.ajax({ type: "POST", url: 'arquivo_ajax.php', dataType: 'html', //data: dados, data: {resp: resp}, }).done(function(data){ //console.log(data); $("#list").empty().html(data); }); return false; $("#meu_form").trigger('submit'); }); }); </script> Funcionou perfeitamente, enviando somente uma requisição a cada vez. Obrigado pela ajuda.
  5. Boa tarde Tenho 5 campos do tipo select no meu formulário. A seguir um dos campos. <div id="resp" class="form-group col-md-3" placeholder="Responsável" title="Pesquisar por Responsável"> <select class="form-control" id="resp" name="resp" placeholder="Responsável" title="Pesquisar por Responsável"> <option value="">Responsável</option> <?php $Sql = "SELECT ..."; $Resultado = ... while ($linha = @pg_fetch_array($Resultado)){. $id_responsavel_bd = $linha["id_responsavel"]; $nome_responsavel_bd = $linha["responsavel"]; if ($resp == $id_responsavel_bd){ echo "<option value='$id_responsavel_bd' selected = 'selected'>$nome_responsavel_bd</option>";} else{ echo "<option value='$id_responsavel_bd'>$nome_responsavel_bd</option>";} } ?> </select> </div> Tenho uma função jquery que ao selecionar qualquer um destes campos, faz uma requisição ajax para atualizar uma div do meu form. <script type="text/javascript"> $(document).ready(function(){ $('select').change(function(){ // Todos selects $('form').submit(function(){ var dados = $(this).serialize(); $.ajax({ type: "POST", url: 'arquivo_ajax.php', dataType: 'html', data: dados, }).done(function(data){ //console.log(data); $("#list").empty().html(data); }); return false; }); $("#meu_form").trigger('submit'); }); }); </script> Ao abrir o formulário e fazer a primeira seleção de algum campo do tipo select, é gerada uma solicitação ajax. O problema é que a cada nova seleção deste campo e de algum outro campo, ao invés de realizar UMA ÚNICA REQUISIÇÃO, está aumentando o número de requisições a cada nova ação. Como não tenho muitos conhecimentos em jquery/ajax em minha dúvida: - É normal ir aumentando o número de requisições? - Deveria sempre realizar apenas uma requisição (imagino que seja correto)? - Meu código está correto? Se não está, onde estou errando? Desde já agradeço pela colaboração.
  6. manolegal

    imprimir todos os dados fora do while

    Boa tarde. Teoricamente deve imprimir normalmente fora do while.
  7. manolegal

    [RESOLVIDO] Gravar dados com array

    Problema resolvido. Minha consulta estava com problemas no retorno dos dados.
  8. manolegal

    [RESOLVIDO] Gravar dados com array

    Tentei resumidamente da seguinte forma: for($i=0; $i<count($id_lts); $i++) { // Buscar Maior Numeração gravada no BD $Sql_numerar = "SELECT MAX(numeracao_final) as ultima_numeracao_final FROM minha_tabela"; $soma = 1; // Adiciona 1 à última numeração, para gerar próxima numeração inicial while ($linha = @pg_fetch_array($Resultado_numerar)){ $ultima_numeracao_final = $linha["ultima_numeracao_final"]; // Variável com última numeração $numeracao_inicial = ($ultima_numeracao_final + $soma); $numeracao_final = $numeracao_inicial + ($total_pedidos[$i]-1); // Numeração Inicial calculada + TOTAL PEDIDOS de cada registro a ser inserido $Sql = "INSERT INTO minha_tabela (total_pedidos, numeracao_inicial, numeracao_final) VALUES ('$total_pedidos[$i]', 'numeracao_inicial', '$numeracao_final')"; } // Fecha "for" Porém os dados de NUMERAÇÃO INICIAL e FINAL, continuam sendo gravados com mesmos valores, ou seja, mesma NUMERAÇÃO INICIAL para todos os registros. Desde já agradeço.
  9. manolegal

    [RESOLVIDO] Gravar dados com array

    Bom dia Tenho um formulário onde o usuário seleciona vários registros para gravar no BD. Os dados estão sendo gravados corretamente (vários registros ao mesmo tempo). O problema é o seguinte: tenho um dado de TOTAL DE PEDIDOS, um dado de NUMERAÇÃO INICIAL e um dado de NUMERAÇÃO FINAL. As numerações inicial e final são definidas de acordo com o TOTAL DE PEDIDOS. Exemplo: TOTAL DE PEDIDOS -> 5, INICIAL -> 1, FINAL -> 5. O detalhe é que essa numeração (Inicial e Final) deve ser sequencial. Supondo que já exista este dado no BD (TOTAL DE PEDIDOS -> 5, INICIAL -> 1, FINAL -> 5), e supondo que serão inseridos 02 novos registros na tabela, sendo ambos com 10 PEDIDOS. Neste caso, no primeiro registro inserido, a NUMERAÇÃO INICIAL deve ser 6 e a NUMERAÇÃO FINAL deve ser 15; e o segundo registro inserido deve ser NUMERAÇÃO INICIAL igual a 16 e NUMERAÇÃO FINAL igual a 25. Problema que para ambos os registros, está calculando o valor INICIAL como 6 e valor FINAL como 15. Como faço para realizar o cálculo corretamente, para que a cada registro seja calculado o valor correto da NUMERAÇÃO INICIAL? Para definição deste valor inicial, faço select no BD para pegar a maior numeração existente, porém o sistema pega este valor e atribui o primeiro valor encontrado para todos os registros, sendo que preciso que a cada lançamento este valor seja atualizado para cálculo da numeração do registro seguinte.
  10. manolegal

    [RESOLVIDO] Formatar número inteiro para decimal para inserir no BD

    Opa Matheus, tudo certo. Beleza. Funcionou. Muito obrigado pela ajuda. Grande abraço. Valeu.
  11. Olá amigos(as) do Fórum. Tenho um número inteiro no PHP e preciso inseri-lo no Postgresql com 02 casas decimais. Defini o campo no Postgresql do tipo numeric(14,2) O valor está assim no PHP: 2961966 Preciso gravar no BD da seguinte maneira: 29619.66 Porém está gravando da seguinte forma: 2961966.00 Tentei utilizando number_format, porém não consegui: $numero_bd = number_format($numero, '.', ''); $numero_bd = number_format($numero,2,"."); $numero_bd = number_format($numero,2,","numerovalor_ref_15,2,",","."); Caso alguém possa me ajudar, desde já agradeço.
  12. manolegal

    Grafico Bootstrap+PHP

    Bom dia. Você deve fazer while da consulta e salvar os dados em variáveis. Depois listar as variáveis desejadas. Talvez este vídeo possa te ajudar: vídeo
  13. manolegal

    Postgresql - Calcular meses entre datas

    Bom dia No cálculo de total de meses entre 02 datas no Postgresql, a consulta está trazendo o valor sem considerar o "dia do mês", ou seja, não está considerando se o dia da data inicial é igual ou superior ao dia da data final: SELECT (CAST(TO_CHAR(AGE('2020-04-29', '2019-07-28'),'MM') AS INTEGER) + (CAST(TO_CHAR(AGE('2020-04-29', '2019-07-28'),'YY') AS INTEGER))*12) AS MESES; Neste caso, o resultado deveria se "8", porém está retornando "9". Como faço para resolver este problema?
  14. manolegal

    Campo com 3 casas decimais [Resolvido]

    Bom dia Resolvi o problema da seguinte maneira: $('#meu_campo').mask("900,000"); $(function() { $("#meu_campo").maskMoney({ precision: 3, decimal: ',' }); }); Obrigado a todos pela ajuda.
  15. manolegal

    Campo com 3 casas decimais [Resolvido]

    Obrigado pela ajuda. Tentei da seguinte forma: <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery.maskedinput/1.4.1/jquery.maskedinput.min.js"></script> $('#meu_campo').mask("999,999"); Porém, o problema está quando preciso informar somente 2 casas decimais antes da vírgula: 10,123. Tentei substituir o primeiro 9 por 0 ou ?, porém não funcionou.
×

Informação importante

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