-
Total de itens
3978 -
Registro em
-
Última visita
-
Dias vencidos
47
Tudo que Williams Duarte postou
-
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!
-
identificar valor especifico em texto com select MYSQL
Williams Duarte respondeu ao tópico de Wanderson Moreira em PHP
Seu entendi corretamente. Utilize a claúsula IN https://www.w3schools.com/sql/sql_in.asp -
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
-
[ RESOLVIDO ] Atualizar página .html automaticamente sempre que sair e voltar ( Refresh )
Williams Duarte respondeu ao tópico de Alberto Nascimento em PHP
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/ -
Está carregando a classe GuzzleHttp via composer?
-
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';
-
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
-
De uma olhada na função date
-
Sim!
-
Pesquisar um documento em um diretório incluindo subdiretórios.
Williams Duarte respondeu ao tópico de asacap1000 em PHP
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. -
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.
-
Aconselho fazer umas aulinhas básica da linguagem! Curso completo e Gratuito. https://www.youtube.com/watch?v=XwpsxPmQN2E&list=PLwXQLZ3FdTVEITn849NlfI9BGY-hk1wkq
-
Relacionamento 1:N replica os dados
Williams Duarte respondeu ao tópico de Rebeca Julia Bronzatti em PHP
Utilize a cláusula Group By https://www.devmedia.com.br/desvendando-a-clausula-group-by-artigo-sql-magazine-47/8082 -
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/
-
Dúvida MVC para fins didáticos [Respondida]
Williams Duarte respondeu ao tópico de sergiosfpereira em PHP
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. -
Pq usa-se bindValue ao invés de usar a variável direto na instrução sql
Williams Duarte respondeu ao tópico de junior3d em PHP
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. -
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;
-
<?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>
-
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 ;
-
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
-
Retornar dados de um campo texto do banco de dados
Williams Duarte respondeu ao tópico de Camilavip em PHP
Para decodificar html_entity_decode -
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);
- 2 respostas
-
Salvar dados de uma tabela html no banco de dados mysql
Williams Duarte respondeu ao tópico de emmanuelsiqueira30 em PHP
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/ -
Dificuldade em adaptar regex para javascript - matches não batem
Williams Duarte respondeu ao tópico de Maykel-ctba em Javascript
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- 1 resposta
-
- javascript
- regex
-
(e mais 1 )
Tags:
-
Salvar dados de uma tabela html no banco de dados mysql
Williams Duarte respondeu ao tópico de emmanuelsiqueira30 em PHP
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>