manolegal
Members-
Total de itens
574 -
Registro em
-
Última visita
Tudo que manolegal postou
-
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?
-
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"
-
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.
-
[RESOLVIDO] Ajax - Problema ao enviar requisição por jquery
manolegal respondeu ao tópico de manolegal em Javascript
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. -
[RESOLVIDO] Ajax - Problema ao enviar requisição por jquery
manolegal postou um tópico no fórum Javascript
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. -
Boa tarde. Teoricamente deve imprimir normalmente fora do while.
-
Problema resolvido. Minha consulta estava com problemas no retorno dos dados.
- 2 respostas
-
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.
- 2 respostas
-
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.
- 2 respostas
-
[RESOLVIDO] Formatar número inteiro para decimal para inserir no BD
manolegal respondeu ao tópico de manolegal em PHP
Opa Matheus, tudo certo. Beleza. Funcionou. Muito obrigado pela ajuda. Grande abraço. Valeu.- 2 respostas
-
- decimal
- postgresql
-
(e mais 1 )
Tags:
-
[RESOLVIDO] Formatar número inteiro para decimal para inserir no BD
manolegal postou um tópico no fórum PHP
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.- 2 respostas
-
- decimal
- postgresql
-
(e mais 1 )
Tags:
-
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
-
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?
-
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.
-
Bom dia Preciso adequar um campo para receber valor com máscara com 03 casas decimais. Com 02 casas está funcionando corretamente: $('#meu_campo').maskMoney( {symbol: "R$ ", decimal: ",", thousands: "."} ); Tentei: $('#meu_campo').maskMoney( {symbol: "R$ ", decimal: ",", thousands: ".", precision: "3"} ); Porém não funciona e nem permite que eu digite algum valor no campo. Preciso que o campo aceite valores no formato: ###,### ou ##,###.
-
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.
-
Preciso pegar o valor que retorna após a leitura no campo: <li v-for="scan in scans" key="scan.date" title="scan.content">{{ scan.content }}</li> Se alguém puder ajudar agradeço. Estou há muito tempo pesquisando e tentando resolver, porém ainda não consegui resolver.
-
Boa tarde Gostaria de colocar o valor de um campo bootstrap/vue.js em uma variável php, porém não estou conseguindo. É a primeira vez que estou trabalhando com vue. O campo está trazendo o valor correto: <section class="scans"> <h2>Scans</h2> <ul v-if="scans.length === 0"> <li class="empty">No scans yet</li> </ul> <transition-group name="scans" tag="ul"> <li v-for="scan in scans" key="scan.date" title="scan.content">{{ scan.content }}</li> </transition-group> </section> var app = new Vue({ el: '#app', data: { scanner: null, activeCameraId: null, cameras: [], scans: [] }, mounted: function () { var self = this; self.scanner = new Instascan.Scanner({ video: document.getElementById('preview'), scanPeriod: 5 }); self.scanner.addListener('scan', function (content, image) { var element = document.getElementById('valor'); element.innerHTML = content self.scans.unshift({ date: +(Date.now()), content: content }); }); Instascan.Camera.getCameras().then(function (cameras) { self.cameras = cameras; if (cameras.length > 0) { self.activeCameraId = cameras[1].id; self.scanner.start(cameras[1]); } else { console.error('Nenhuma Câmera conectada. Verifique!'); } }).catch(function (e) { console.error(e); }); }, methods: { formatName: function (name) { return name || '(unknown)'; }, selectCamera: function (camera) { this.activeCameraId = camera.id; this.scanner.start(camera); } } }); Preciso pegar o valor escaneado constante no campo, para passar para próximo formulário. No aguardo.