Ir para conteúdo

POWERED BY:

Williams Duarte

Members
  • Total de itens

    3978
  • Registro em

  • Última visita

  • Dias vencidos

    47

Tudo que Williams Duarte postou

  1. Williams Duarte

    Calcular frete correios

    Tem que calcular a cubagem do total de itens no carrinho. Segue uma lógica: /** * Calcular cubagem de produto(s) no carrinho * @param array $carrinho_lista carrinho de compras * @return [type] [description] */ function calculaCubagemProduto($produto_lista = array()) { $qtde = 0; $peso = 0; $total_peso = 0; $total_cubagem = 0; $raiz_cubica = 0; foreach ($produto_lista as $key => $carrinho) { $peso = $carrinho['peso']; $qtde = $carrinho['qtde']; $altura = $carrinho['altura']; $largura = $carrinho['largura']; $comprimento = $carrinho['comprimento']; echo 'QTDE ' . $qtde . '<br >'; echo 'PESO ' . $peso . '<br >'; $total_cubagem += ($altura * $largura * $comprimento * $qtde); echo 'TOTAL CUBAGEM ' . $total_cubagem . '<br /><br />'; /* echo '<br />Qtde: '. $qtde; echo '<br />Produto Peso: '. $peso; echo '<br />Produto Altura: '. $altura; echo '<br />Produto largura: '. $largura; echo '<br />Produto Comprimento: '. $comprimento; echo '<br />--------------------------------------------------------'; echo "<br /><br />Centimetro cubico por produto: " . $total_cubagem; echo "<br />Centimetro cubico total: " . $total_cubagem * $qtde; echo "<br /><br />Raiz cubica por produto: " . $raiz_cubica_produto . '<br />'; echo "<strong>Raiz cubica total: <strong>" . $raiz_cubica . '<br />'; */ } $raiz_cubica += round(pow($total_cubagem, (1 / 3))); $total_peso = round($total_peso); // em kilos if ($raiz_cubica < 16) { $omprimento = 16; // em centimetros } else { $comprimento = $raiz_cubica; } if ($raiz_cubica < 11) { $largura = 11; // em centimetros } else { $largura = $raiz_cubica; } $altura = round($total_cubagem / ($comprimento * $largura)); // em centimetros echo "Total qte {$qtde} <br />"; echo "Total cubagem {$total_cubagem} <br />"; echo "Total peso {$total_peso} <br />"; echo "Total comprimento {$comprimento} <br />"; echo "Total largura {$largura} <br />"; echo "Total altura {$altura} <br />"; } Na época, a lógica e a implemtentação foi baseada neste post. http://www.dothcom.net/blog/comercio-eletronico/calculo-de-frete-com-multiplos-volumes-dos-correios/ Se nada mudou, a lógica é esta!
  2. Williams Duarte

    identificar valor especifico em texto com select MYSQL

    Seu entendi corretamente. Utilize a claúsula IN https://www.w3schools.com/sql/sql_in.asp
  3. Williams Duarte

    Trazendo formato data invertida

    Outra alternativa, é utilizar as funções nativas e, específicas para manipulação de datas. https://www.php.net/manual/pt_BR/function.strtotime.php https://www.php.net/manual/pt_BR/function.date.php echo date('d/m/Y H:i:s', strtotime($rows_contatos['created'])); Saida: 07/07/2020 12:28:38 ou echo date('d/m/Y', strtotime($rows_contatos['created'])); Saida: 07/07/2020
  4. Williams Duarte

    [ RESOLVIDO ] Atualizar página .html automaticamente sempre que sair e voltar ( Refresh )

    Se você não quer guardar estados, set os headers diretamente na aplicação. http://cristian.sulea.net/blog/disable-browser-caching-with-meta-html-tags/
  5. Williams Duarte

    Dúvida consultar API com PHP

    Está carregando a classe GuzzleHttp via composer?
  6. Williams Duarte

    Trazer resultado de 0 ou 1 em Não ou Sim

    Em php, use um operador ternário https://www.devmedia.com.br/php-if-else-e-o-operador-ternario/38219 $ativo = $dados['ativo'] ? 'Sim' : 'Não';
  7. Williams Duarte

    Dados de um campo

    Utilize a função json_decode para efetuar o parse na string Exemplo: <?php $json = '{"user_id":"1","user_token":"5181e24c8a7e60304156e08595f48ad6"}'; $obj = json_decode($json); var_dump( $obj ); echo $obj->user_token; Execute online o teste: http://sandbox.onlinephpfunctions.com/code/a6a4a089c8f6d56d8ddcdb7086ac53176c98a36c
  8. Williams Duarte

    Exibir pagina durante um periodo

    De uma olhada na função date
  9. Williams Duarte

    Update registros multiplicando valores

    Sim!
  10. Williams Duarte

    Pesquisar um documento em um diretório incluindo subdiretórios.

    Com a Função RecursiveDirectoryIterator, você consegue fazer isto, aqui tem um exemplo Porem eu faria diferente, armazenaria o path absoluto em um banco de dados, ou todo o documento em banco NoSQL.
  11. Williams Duarte

    replicar código

    As funções são blocos reutilizáveis de códigos, e é justamente para este fim. E quando o programa é subdividido em funções, se ocorrer algum erro, você sabe exatamente qual função está causando o erro e onde encontrá-lo. Portanto, a correção de erros se torna muito mais fácil. Qualquer outra coisa diferente disto, seja ela em escopo global ou não, é puro amadorismo.
  12. Williams Duarte

    Venda de carros

    Aconselho fazer umas aulinhas básica da linguagem! Curso completo e Gratuito. https://www.youtube.com/watch?v=XwpsxPmQN2E&list=PLwXQLZ3FdTVEITn849NlfI9BGY-hk1wkq
  13. Williams Duarte

    Relacionamento 1:N replica os dados

    Utilize a cláusula Group By https://www.devmedia.com.br/desvendando-a-clausula-group-by-artigo-sql-magazine-47/8082
  14. Williams Duarte

    PHP - Mostrar resultado na sequencia.

    Ao invés de usar tabelas para tal, use gride e terá um resultado melhor e semântico. https://www.origamid.com/projetos/css-grid-layout-guia-completo/
  15. Williams Duarte

    Dúvida MVC para fins didáticos [Respondida]

    Sim! As duas formas são corretas, você declara no construct, se quiser usar em mais de um lugar na classe! Não traballho mais com Cake, mas sim Laravel, mas o Cake nas primeiras versões usava da maneira como descreveu. Não sei como ele esta hoje, se mudou a forma de carregar as models.
  16. Williams Duarte

    Pq usa-se bindValue ao invés de usar a variável direto na instrução sql

    Saiba mais aqui Desta forma use $pdo->query("..."), mas entenda sobre SQL Injection Há outras formas e um pouco menos verbosa, utilizando o prepared statements, ao invés de query. Passe o array no método execute() da PDO. $sql = "INSERT INTO usuarios (nome, email, telefone, senha) VALUES (?,?,?,?)"; $stmt= $pdo->prepare($sql); $stmt->execute([$nome, $telefone, $email, $senha]); Ou nomeados Prefira sempre o uso de espaços nomeados "placeholders", igual ao exemplo abaixo: $sql = "INSERT INTO usuarios (nome, email, telefone, senha) VALUES (:n, :t, :e, :s)"; $stmt= $pdo->prepare($sql); $stmt->execute([":n" => $nome, ":t" => $telefone, ":e" => $email, ":s" => $senha]); Quando evoluir na linguagem php, verás que a ultima a opção é a melhor para se trabalhar com objetos.
  17. Williams Duarte

    Apagando foto do registro e da pasta

    Como assim nao aparece nada? Faça um debug do código <> https://www.php.net/manual/pt_BR/function.error-reporting.php Abra seu codigo, e cole o código abaixo, ao abrir a tag php, veja que colei parte de seu código para saber onde deve dar um CTRL+V. Se mostrar algum erro, faça o mesmo, copia e cole aqui. <?php // Turn off all error reporting error_reporting(0); // Report simple running errors error_reporting(E_ERROR | E_WARNING | E_PARSE); // Reporting E_NOTICE can be good too (to report uninitialized // variables or catch variable name misspellings ...) error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Report all errors except E_NOTICE // This is the default value set in php.ini error_reporting(E_ALL ^ E_NOTICE); // Report all PHP errors error_reporting(E_ALL); // Same as error_reporting(E_ALL); ini_set('error_reporting', E_ALL); //Aqui começa seu codigo, cole a parte de cima, a que esta no manual // Conexão com o banco de dados include "conexao.php"; // pegar a id do cliente na url (se existir) $id_cliente = isset($_GET['id']) ? $_GET['id'] : null; $fotoNova = null;
  18. Williams Duarte

    Apagando foto do registro e da pasta

    <?php // Conexão com o banco de dados include "conexao.php"; // pegar a id do cliente na url (se existir) $id_cliente = isset($_GET['id']) ? $_GET['id'] : null; $fotoNova = null; // se algo for postado, e existir a id do cliente if (sizeof($_POST) && $id_cliente) { $foto = $_FILES['foto']; // Se a foto estiver sido selecionada if (!empty($foto['name'])) { // Largura máxima em pixels $largura = 700; // Altura máxima em pixels $altura = 1000; // Tamanho máximo do arquivo em bytes $tamanho = 1000; // Verifica se o arquivo é uma imagem if (preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto['type'])) { $error[1] = "Isso não é uma imagem."; } // Pega as dimensões da imagem $dimensoes = getimagesize($foto['tmp_name']); // Verifica se a largura da imagem é maior que a largura permitida if ($dimensoes[0] > $largura) { $error[2] = "A largura da imagem não deve ultrapassar " . $largura . " pixels"; } // Verifica se a altura da imagem é maior que a altura permitida if ($dimensoes[1] > $altura) { $error[3] = "Altura da imagem não deve ultrapassar " . $altura . " pixels"; } { // Pega extensão da imagem preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto['name'], $ext); // Gera um nome único para a imagem $nome_imagem = md5(uniqid(time())) . "." . $ext[1]; // Caminho de onde ficará a imagem $caminho_imagem = "fotos/" . $nome_imagem; // Faz o upload da imagem para seu respectivo caminho move_uploaded_file($foto['tmp_name'], $caminho_imagem); $image = new Imagick(); $image->thumbnailImage($largura, $altura); $image->readImage($caminho_imagem); $image->setImageFormat($ext[1]); $image->setImageCompressionQuality(85); $image->stripImage(); $image->writeImage($caminho_imagem); } } // atualiza os dados no banco $sql = $sqli->query("update clientes set foto = '$nome_imagem' where id_cliente = $id_cliente"); // Se os dados forem inseridos com sucesso if ($sqli->error) { echo "<p>Erro ao atualizar.</p>" . $sqli->error; } else { // vai forçar o recarregamento da imagem nova $fotoNova = '?' . microtime(true); } } ?> <!doctype html> <html> <head> <meta charset='utf-8'> <title>CLIENTES</title> <link href="estilo.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="#E8E8E8"> <form id="atualizar" method="post" enctype="multipart/form-data" onsubmit="return validaCampo(); return false;" > <?php // Seleciona apenas a foto do cliente id = $id_cliente $result = $sqli->query("SELECT foto FROM clientes WHERE id_cliente=$id_cliente"); if ($sqli->error) { die($sqli->error); } else { // Exibe as informações de cada usuário while ($cliente = $result->fetch_assoc()) { // Exibimos a foto if (empty($cliente['foto'])) { echo "<img src='fotos/sem_foto.jpg' width='135' height='180'>"; } else { echo "<img src='fotos/" . $cliente['foto'] . "$fotoNova' alt='Foto de exibição' width='145' height='180'><br>"; } // Exibimos o nome e email..continua o resto do codigo aqui } } ?> <input type="file" name="foto" accept="image/*"><br><br> <input type="hidden" name="enviar" value="1"> <input type="submit" name="atualizar" value="Enviar" /> </form> </body> </html>
  19. Williams Duarte

    Gravando data no mysql

    Se a data vem neste formato brasileiro 00/00/0000, faz um reverse e grava no BD em formato americano 0000-00-00 $created = isset($_POST['created']) ? implode("-",array_reverse(explode("/", $_POST['created']))) : null ;
  20. Williams Duarte

    Fazendo Upload de vídeo

    Hoje em dia não é mais viável fazer upload de videos para servidor próprio, pelo fato de que exige alocação de espaço, memória e tráfego. Há não ser que você esteja montando um servidor de streaming. Senão for um servidor de streaming, melhor utilizar o plataformas como youtube e vimeo para upar o videos, caso "não queira" que apareça para usuários das plaformas youtube/vimeo, coloque os videos como não listados, e incorpore os videos em seu site. https://support.google.com/youtube/answer/171780?hl=pt-BR Se mesmo assim, deseja enviar, segue abaixo os formatos. https://en.wikipedia.org/wiki/Video_file_format Ao detectar qual é o formato do arquivo, faça as operações que não seja de foto, mas sim de video. Basicamente, if e else, separe a logica de cada coisa, não ha porque adaptar
  21. Williams Duarte

    Retornar dados de um campo texto do banco de dados

    Para decodificar html_entity_decode
  22. Williams Duarte

    Passar objeto para JSON

    O valor atual do elemento em $callBack['nome'], esta sendo substistuido a cada interação do foreach. E sempre vai adicionar o último item. Você pode fazer isto, sem utilizar o foreach: $callBack['items'] = $items; Caso queira remover um item do array, antes de adicionar na variavel $callBack, use unset Ou array_map, para mapear só item nome $callBack["nome"] = array_map(function ($item) { return $item['nome']; }, $itens);
  23. Williams Duarte

    Salvar dados de uma tabela html no banco de dados mysql

    Dois exemplos em UM: $( "form" ).submit(function( event ) { console.log( $( this ).serializeArray() ); event.preventDefault(); var ativo = $("input[name='ativo[]']") .map(function(){ return $(this).val(); }).get(); console.log(ativo); }); https://api.jquery.com/serializeArray/ https://api.jquery.com/jQuery.map/ Para enviar para o php, use ajax, só montar o payload, caso queira validar os dados, no lado cliente, senão, envie os dados serializados, que estão em $( this ).serializeArray(). Exemplo da documentação, substitua o data pelo seu payload. $.ajax({ method: "POST", url: "some.php", data: { name: "John", location: "Boston" } }) .done(function( msg ) { alert( "Data Saved: " + msg ); }); https://api.jquery.com/jquery.ajax/
  24. Williams Duarte

    Dificuldade em adaptar regex para javascript - matches não batem

    Em Js Troque as flags (?i) por (.*) E set i "insensitive" na option da Regex, ficando /mgi /(?:(.*)(?:https:|http:)?\/\/)?(?:(.*)(?:www\.youtube\.com\/(?:embed\/|watch\?v=)|youtu\.be\/|youtube\.googleapis\.com\/v\/)(?<YoutubeID>[a-z0-9-_]{11,12})|(?:vimeo\.com\/|player\.vimeo\.com\/video\/)(?<VimeoID>[0-9]+))/mgi; https://regex101.com/r/npUFe1/1
  25. Williams Duarte

    Salvar dados de uma tabela html no banco de dados mysql

    Passe os dados dos forms por Array, seja eles selects, inputs etc, desta forma, ou você manda a request diretamente para o php ou para o proprio jquery efetuar a requisição por ajax. <select name="ativo[]">...</select>
×

Informação importante

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