Frank K Hosaka
Members-
Total de itens
224 -
Registro em
-
Última visita
Tudo que Frank K Hosaka postou
-
erro Uncaught Error: Class 'Read' not found in
Frank K Hosaka respondeu ao tópico de joao b silva em PHP
Seguindo a orientação do Installation v7+ – InstallatiDFon & Setup – mPDF Manual usei o comando composer require mpdf/mpdf pelo prompt do Windows no mesmo diretório onde estão os projetos PHP, isto é, C:\wamp64\www\astudy, e de lá testei o teste abaixo <?php require_once __DIR__ . '/vendor/autoload.php'; $mpdf = new \Mpdf\Mpdf(); $mpdf->WriteHTML('<h1>Hello world!</h1>'); $mpdf->Output(); e deu certo. Agora, instalar esse recurso no servidor, não deve ser fácil. Encontrei essa advertência em Requirements v7+ – About mPDF – mPDF Manual, ele diz: mPDF has some problems with fetching external HTTP resources with single threaded servers such as php -S. A proper server such as nginx (php-fpm) or Apache is recommended. -
Esse analytic functions chamou a minha atenção. Dentro da rotina do balancete eu criei as instruções para mostrar ao usuário todas as apurações que existem nos registros contábeis, ele escolhe uma, a apuração escolhida é gravada na tbsupervariável, depois ele volta no balancete mas usando o período de apuração que foi gravado na tbsupervariável. É possível fazer o mesmo roteiro sem a necessidade de usar o MySQL como "variável global" do PHP? Eu não tive como imaginar outra solução, pois o período de apuração também é utilizado no livro Razão, e assim usei a tbsupervariável para gravar o endereço da rotina que chamou a apuração.
-
Esse analytic functions chamou a minha atenção. Dentro da rotina do balancete eu criei as instruções para mostrar ao usuário todas as apurações que existem nos registros contábeis, ele escolhe uma, a apuração escolhida é gravada na tbsupervariável, depois ele volta no balancete mas usando o período de apuração que foi gravado na tbsupervariável. É possível fazer o mesmo roteiro sem a necessidade de usar o MySQL como "variável global" do PHP?
-
Submeter formulario ao clicar em um button fora do form
Frank K Hosaka respondeu ao tópico de luiz monteiro em Javascript
O exemplo da w3schools só tem um botão fora do <form>. Eu entendi que o desenvolvedor quer impressionar o cliente com um botão que não funciona e outro que funciona. Mas a sua intervenção foi válida, eu não sabia que o elemento button tinha atributos para controlar o formulário, eu gastei o meu JavaScript embutido de bobeira. -
Submeter formulario ao clicar em um button fora do form
Frank K Hosaka respondeu ao tópico de luiz monteiro em Javascript
Eu excluiria o código JavaScript e faria assim: <form onsubmit="return false" action="./busca.php" method=post name=buscar id=frmbuscar> <input name="texto"> <button>Esse botão não funciona</button> </form> <button onclick=frmbuscar.submit()>Esse botão funciona</button> -
Eu não me preocupo com a otimização, mas sim com o resultado. Primeiro eu começo com as coisas mais simples. Vou no terminal do MySQL, e peço para executar "Select * from tblancamentos", e ele me devolve um monte de registros com data, contadevedora, contacredora, histórico e valor. Como eu faço para separar a conta Enel (4111)? Então eu mudo a requisição assim "Select * from tblancamentos where contadevedora=4111 or contacredor=4111", aqui ele filtra todos os débitos e créditos da Enel lá de 1975 até 2022. Como eu faço para filtrar por data? "Select * from tblancamentos where (contadevedora=4111 or contacredor=4111) and dia between '2022-11-01' and '2022-11-30' Como eu faço para somar todos os débitos de 4111? "Select sum(case when contadevedora=4111 valor else 0 end) as debito where dia between '2022-11-01' and '2022-11-30'" Você precisa se familiarizar com as ferramentas mais simples para chegar no resultado que você espera. Um sistema otimizado é quando o programa faz o que você quer, pouco importa quantas vezes o programa precisa ver os dados.
-
Duvida sobre como criar um loop entre divs usando php
Frank K Hosaka respondeu ao tópico de chinesedg em PHP
Eu fiz uma nova revisão no código original, o primeiro que foi postado. Ele não é completo, assim tomei a liberdade de alterar para poder testar aqui, e para a minha surpresa, tudo funciona, os imóveis são publicados na sequência. O único problema é o <img src=images/6.jpg> - do jeito que foi escrito, todos os imóveis vão aparecer com a mesma imagem. No seu código, você usou $bairro, e eu alterei para <?=$row["bairro"]?>, mas acredito que o problema não é esse. Eu acredito que o seu código está publicando os seis imóveis, mas usando a mesma foto, o que dá a impressão de que a informação está sendo repetida 6 vezes. A seguir o código que eu testei: <!DOCTYPE html><html><head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> </head><body> <div class="events"> <div class="container"> <?php $conexao = new mysqli("localhost","root","","astudy"); if (!$conexao) { die("Connection failed: " . mysqli_connect_error());} $query = "SELECT * FROM imoveis"; $result = mysqli_query($conexao, $query); if($result){ while($row = mysqli_fetch_array($result)){ $ref = $row["ref"]; ?> <div class="events-grids"> <div class="col-md-4 events-grid"> <div class="events-grid1 hvr-sweep-to-top"> <a href="imovel.php"><img src="cinqueterre.jpg" alt=" " class="img-responsive" /></a> <h4><a href="imovel.php"><?=$row["bairro"]?></a></h4> <ul> <li><a href="imovel.php"><span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span><?=$row['cidade']?></a></li> </ul> <p>Quartos: <?=$row["quartos"]?> | Suites: <?=$row["suites"]?> | Banheiros: <?=$row["banheiros"]?> | Vagas: <?=$row["vagas"]?> | Condomínio: <?=$row["condominio"]?></p> <h4><a href="imovel.php"><?=$row['preco']?></a></h4> </div> </div> <?php } } ?> </div> </div> </div> -
Fazer relação somente quando não for 0
Frank K Hosaka respondeu ao tópico de mateus.andriollo em MySQL
Esse é um problema difícil, o máximo que eu consegui foi isso: select * from user u, regras r where idview=30 and u.cargos_cod=r.cargos_cod; select * from user u, regras r where (idview=26 and u.cargos_cod=r.cargos_cod) or (idview=26 and u.depart_cod=r.depart_cod); select * from user u, regras r where idview=27 and u.cargos_cod=r.cargos_cod; select * from user u, regras r where idview=28 and u.cargos_cod=r.cargos_cod; O problema está no idview=26. Se eu colocar na consulta o depart_cod para as outras consultas, as respostas vão ser diferentes. -
Hahahaha... eu concordo. Quando eu criei a tbsupervariável ele só tinha quatro campos, hoje já chega a 20 campos. É a única tabela no mundo inteiro que só tem um registro. Ele me ajuda a mudar o prazo de apuração. Ele me ajuda a escolher um cliente num orçamento. Ele me ajuda a escolher um produto. Claro que o PHP tem variáveis globais que podem fazer o mesmo serviço, mas como eu sou péssimo programador, eu apelei para o MySQL fazer esse serviço por mim. Melhor do que ninguém, eu sei que a gambiarra não compensa nos países desenvolvidos onde os desenvolvedores levam a programação como coisa séria. Mas como vivemos no paraíso da impunidade, não vejo porque eu devo abrir mãos desses atalhos bem espertos. Afinal se os vereadores, prefeitos, deputados estaduais, deputados federais, senadores não se dão o trabalho de mostrar o bom exemplo de respeitar a lógica e a razão, por que eu devo seguir um caminho diferente?
-
Ao invés de fazer o balancete no PHP, eu fiz no MySQL assim: CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `vw_bal1` AS SELECT `tbconta`.`conta` AS `conta`, `tbconta`.`descricao` AS `descricao`, (COALESCE(SUM((CASE WHEN (`tbdiario`.`contad` = `tbconta`.`conta`) THEN `tbdiario`.`valor` ELSE 0 END)), 0) - COALESCE(SUM((CASE WHEN (`tbdiario`.`contac` = `tbconta`.`conta`) THEN `tbdiario`.`valor` ELSE 0 END)), 0)) AS `saldo` FROM ((`tbsupervariavel` JOIN `tbconta`) LEFT JOIN `tbdiario` ON ((`tbdiario`.`dia` < `tbsupervariavel`.`primeirodia`))) GROUP BY `tbconta`.`conta` ORDER BY 'tbconta'.'conta' -------------------------------------------------------- CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `vw_bal2` AS SELECT `tbconta`.`conta` AS `conta`, SUM((CASE WHEN (`tbdiario`.`contad` = `tbconta`.`conta`) THEN `tbdiario`.`valor` ELSE 0 END)) AS `debito`, SUM((CASE WHEN (`tbdiario`.`contac` = `tbconta`.`conta`) THEN `tbdiario`.`valor` ELSE 0 END)) AS `credito` FROM ((`tbsupervariavel` JOIN `tbconta`) JOIN `tbdiario` ON ((`tbdiario`.`dia` BETWEEN `tbsupervariavel`.`primeirodia` AND `tbsupervariavel`.`ultimodia`))) GROUP BY `tbconta`.`conta` ORDER BY `tbconta`.`conta` ---------------------------------------------------- CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `vw_balancete` AS SELECT `vw_bal1`.`conta` AS `conta`, `vw_bal1`.`descricao` AS `descricao`, `vw_bal1`.`saldo` AS `saldo`, `vw_bal2`.`debito` AS `debito`, `vw_bal2`.`credito` AS `credito`, ((`vw_bal1`.`saldo` + `vw_bal2`.`debito`) - `vw_bal2`.`credito`) AS `final` FROM (`vw_bal1` JOIN `vw_bal2` ON ((`vw_bal1`.`conta` = `vw_bal2`.`conta`))) GROUP BY `vw_bal1`.`conta` ORDER BY `vw_bal1`.`conta` ORDER BY `tbconta`.`conta` Claro que inventei uma tremenda gambiarra, onde inventei uma tabela que só tem um registro e que chamei de tbsupervariavel: CREATE TABLE `tbsupervariavel` ( `codsuper` int NOT NULL, `docto` int DEFAULT NULL, `anoapurado` int DEFAULT NULL, `dia` date DEFAULT NULL, `codprod` int DEFAULT NULL, `lcto` int DEFAULT NULL, `mesapurado` int DEFAULT NULL, `mesextenso` varchar(10) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL, `primeirodia` date DEFAULT NULL, `ultimodia` datetime DEFAULT NULL, `end` varchar(45) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL, `senha` varchar(20) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL, `ped` mediumint DEFAULT NULL, `codp` mediumint DEFAULT NULL, `pessoa` varchar(100) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL, `criterio` varchar(100) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT 'null', `updated_at` datetime DEFAULT NULL, PRIMARY KEY (`codsuper`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_swedish_ci Já o balancete.php só tem que apresentar as informações de forma mais amigável, por exemplo, calculando o resultado em qualquer perído de apuração assim: <?php $menu="Balancete"; include('menu.php'); echo "<script>document.title='Balancete'</script>"; if (isset($_POST['balancete'])) { $receita=0; $despesa=0; $query = $mysqli->query("select * from tbsupervariavel"); $linha = $query->fetch_assoc(); $mes=$linha['mesapurado']; $ano=$linha['anoapurado']; $ultimo="$ano-$mes-1";$ultimo=strtotime($ultimo); $primeiro=date('Y-m-d',$ultimo); $penultimo=$ultimo-1;$penultimo=date('Y-m-d',$penultimo); $ultimo=date('Y-m-t',$ultimo); $mesextenso=$linha['mesextenso']; echo "<div class=divteste><table class='table table-striped linha'><tr><th><th align=left>"; echo "<a onclick=inpg.name='apuracao';inpg.value=1;frmg.submit()>$mesextenso de $ano</a>"; echo "</th><th align=right>Anterior<th align=right>Débito"; echo "<th align=right>Crédito<th align=right>Saldo Atual"; $query = $mysqli->query("select * from vw_balancete"); $anterior=0;$receita=0;$despesa=0; while($linha = $query->fetch_assoc()){ $conta=$linha['conta']; $conta2 = "<a onclick=inpg.name='razao';inpg.value=$conta;frmg.submit() class=azul>$conta</a>"; $descricao=$linha['descricao']; $saldo=$linha['saldo']; $debito=$linha['debito']; $credito=$linha['credito']; $final=$linha['final']; echo "<tr><td>$conta2</td><td>$descricao</td><td align=right>".dec($saldo); echo "<td align=right>".dec($debito)."<td align=right>".dec($credito)."<td align=right>"; echo dec($final); $anterior+=$saldo; if ($conta>=301 and $conta<=304){$receita+=$final;} if ($conta>304){$despesa+=$final;} if ($conta==304){echo "<tr><td><td><td><td><td align=right><b>Receita<td align=right><b>".dec($receita);}} echo "<tr><td><td><td><td><td align=right><b>Despesa<td align=right><b>".dec($despesa); if(abs($receita)>$despesa){$resultado="Lucro";} else {$resultado="Prejuizo";} echo "<tr><td><td><td align=right><b>".dec($anterior)."<td><td align=right><b>$resultado<td align=right><b>".dec($despesa+$receita); echo "</table></div>"; exit;} if (isset($_POST['voltadiario'])) { $diar=$_POST['voltadiario']; $diar=implode('-',array_reverse(explode('/',$diar))); $query=$mysqli->query("update tbsupervariavel set dia='$diar'"); echo "<script>location.replace('diario.php')</script>";} if (isset($_POST['razao'])) { // razão $conta = $_POST['razao']; $query = $mysqli->query("select descricao from tbconta where conta=$conta"); $descricao = $query->fetch_row()[0]; $query = $mysqli->query("select * from tbsupervariavel"); $linha = $query->fetch_assoc(); $mes=$linha['mesapurado']; $ano=$linha['anoapurado'];$mesextenso=$linha['mesextenso']; $ultimo="$ano-$mes-1";$ultimo=strtotime($ultimo); $primeiro=date('Y-m-d',$ultimo); $penultimo=$ultimo-1;$penultimo=date('Y-m-d',$penultimo);$ultimo=date('Y-m-t',$ultimo); $query2 = $mysqli->query("select * from vw_balancete where conta=$conta"); $linha2=$query2->fetch_assoc(); $saldo = $linha2['saldo']; if ($saldo>0) {$saldo= dec($saldo);} else {$saldo="<font color=red>".dec($saldo)."</font>";} echo "<div><table class='table table-striped linha'><tr><th>Docto<th><a onclick=inpg.name='apuracao';inpg.value=$conta;frmg.submit()>$ano</a><th>"; echo "<th align=left nowrap><a onclick=inpg.name='balancete';frmg.submit()>$conta $descricao</a>"; echo "<tr><td></td><td></td><td align=right><b>$saldo</td><td><b>Saldo anterior</td></tr>"; $query=$mysqli->query("select * from tbdiario where (dia between '$primeiro' and '$ultimo' and contad=$conta) or (dia between '$primeiro' and '$ultimo' and contac=$conta)"); while ($linha=$query->fetch_assoc()){ $diar = df($linha['dia']); $diar2=df3($linha['dia']); $valor = $linha['valor']; $contad=$linha['contad']; $lcto = $linha['lcto'];$lcto="<a onclick='detalhar($lcto)'>$lcto</a>"; $diar2="<a onclick=inpg.name='voltadiario';inpg.value='$diar';frmg.submit() style=color:blue>$diar2</a>"; if ($contad==$conta) {$valor = dec($valor);} else {$valor="<font color=red>".dec($valor)."</font>";} echo "<tr><td valign='top'>$lcto<td>$diar2<td align=right valign='top'>$valor<td valign='top'>".$linha['hist'];} $tdebito=dec($linha2['debito']); echo "<tr><td><td><td align=right><b>$tdebito<td><b>Total de débito"; $tcredito=dec($linha2['credito']); echo "<tr ><td><td><td align=right><font color=red><b>$tcredito<td><b>Total de crédito</font></tr>"; $sql="select (sum(ifnull(debito,0))-sum(ifnull(credito,0))) as saldo from tbdiario where dia<='$ultimo' and conta='$conta'"; $saldo = $linha2['final']; if ($saldo>0) {$saldo= dec($saldo);} else {$saldo="<font color=red>".dec($saldo)."</font>";} echo "<tr><td><td><td align=right><b>$saldo<td><b>Saldo atual</table></div>";exit;} if (isset($_POST['apuracao'])) { $voltarpara=$_POST['apuracao']; if (isset($_POST['escolhido'])) { // atualiza o período de apuração para balancete e razão $apuracao=$_POST['escolhido']; $apuracao = strtotime($apuracao); $format = new IntlDateFormatter('pt_BR', IntlDateFormatter::NONE, IntlDateFormatter::NONE, NULL, NULL, "MMMM"); $mesextenso = datefmt_format($format, $apuracao); $mesextenso = ucfirst($mesextenso); $ano=date('Y',$apuracao); $mes=date('m',$apuracao); $primeirodia=date('Y-m-1',$apuracao); $ultimodia=date('Y-m-t',$apuracao); $query=$mysqli->query("update tbsupervariavel set ultimodia='$ultimodia', primeirodia='$primeirodia', anoapurado=$ano, mesapurado=$mes, mesextenso='$mesextenso' where codsuper=1"); if ($voltarpara==1) { echo "<script>inpg.name='balancete';frmg.submit()</script>";} else { echo "<script>inpg.name='razao';inpg.value=$voltarpara;frmg.submit()</script>";}} $sql="Select * from vw_apuracao"; $query = $mysqli->query($sql); echo "<table><tr height=50px><tr>"; while($linha = $query->fetch_assoc()) { $apuracao = $linha['apuracao']; echo "<form method='post'><input type=hidden name=apuracao value=$voltarpara>"; echo "<td><button name=escolhido value=$apuracao>".df2($apuracao)."</button></td>"; $mes=substr($apuracao,5,2);if (($mes=='01') or ($mes=='07')) {echo "</tr><tr>";}} echo "</table>"; exit;} ?>
-
Duvida sobre como criar um loop entre divs usando php
Frank K Hosaka respondeu ao tópico de chinesedg em PHP
Estudando um pouco mais o Bootstrap, consegui reduzir bastante o código: <!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://getbootstrap.com/docs/5.2/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"> <div class="container py-3"> <div class='row row-cols-1 row-cols-md-3 mb-3 text-center'> <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from imoveis"); for($icontador=1;$icontador<=3;$icontador++){ $row=$query->fetch_assoc(); ?> <div class="col"> <div class="card mb-4 rounded-3 shadow-sm"> <div class="card-header py-3"> <h4 class="my-0 fw-normal"><img src=<?=$row['imagem']?> width=250 height=200></h4> </div> <div class="card-body"> <h1 class="card-title pricing-card-title"><?=$row['preço']?></h1> <ul class="list-unstyled mt-3 mb-4"> <li><?=$row['quartos']?> quartos</li> <li><?=$row['banheiros']?> banheiros</li> <li><?=$row['vagas']?> vagas</li> <li>Bairro <?=$row['bairro']?></li> </ul> <button type="button" class="w-100 btn btn-lg btn-outline-primary">Cidade <?=$row['cidade']?></button> </div> </div> </div> <?php } ?> -
Duvida sobre como criar um loop entre divs usando php
Frank K Hosaka respondeu ao tópico de chinesedg em PHP
Isso daí não é mais PHP e sim CSS. O PHP só passa informação, quem controla o <div> é o HTML. Em termos de apresentação, a equipe mais conhecida é o Bootstrap. No portal deles, eu encontrei um código exemplo de preço, mais ou menos parecido com o seu layout, e adaptei o PHP no meio deles. O código ficou enorme, e só consegui colocar três imóveis na tela: <!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="cid:css-ce6461f7-6874-4a99-9a14-5a00e5049f6e@mhtml.blink" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors"> <meta name="generator" content="Hugo 0.104.2"> <title>Pricing example · Bootstrap v5.2</title> <link rel="canonical" href="https://getbootstrap.com/docs/5.2/examples/pricing/"> <link href="https://getbootstrap.com/docs/5.2/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"> <!-- Favicons --> <link rel="apple-touch-icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png"> <link rel="icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png"> <link rel="manifest" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/manifest.json"> <link rel="mask-icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/safari-pinned-tab.svg" color="#712cf9"> <link rel="icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/favicon.ico"> <meta name="theme-color" content="#712cf9"> <!-- Custom styles for this template --> <link href="https://getbootstrap.com/docs/5.2/examples/pricing/pricing.css" rel="stylesheet"> </head> <body> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="check" viewBox="0 0 16 16"> <title>Check</title> <path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"></path> </symbol> </svg> <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from imoveis");$row=$query->fetch_assoc(); ?> <div class="container py-3"> <main> <div class="row row-cols-1 row-cols-md-3 mb-3 text-center"> <div class="col"> <div class="card mb-4 rounded-3 shadow-sm"> <div class="card-header py-3"> <h4 class="my-0 fw-normal"><img src=<?=$row['imagem']?> width=250 height=200></h4> </div> <div class="card-body"> <h1 class="card-title pricing-card-title"><?=$row['preço']?></h1> <ul class="list-unstyled mt-3 mb-4"> <li><?=$row['quartos']?> quartos</li> <li><?=$row['banheiros']?> banheiros</li> <li><?=$row['vagas']?> vagas</li> <li>Bairro <?=$row['bairro']?></li> </ul> <button type="button" class="w-100 btn btn-lg btn-outline-primary">Cidade <?=$row['cidade']?></button> </div> </div> </div> <?php $row=$query->fetch_assoc(); ?> <div class="col"> <div class="card mb-4 rounded-3 shadow-sm"> <div class="card-header py-3"> <h4 class="my-0 fw-normal"><img src=<?=$row['imagem']?> width=250 height=200></h4> </div> <div class="card-body"> <h1 class="card-title pricing-card-title"><?=$row['preço']?></h1> <ul class="list-unstyled mt-3 mb-4"> <li><?=$row['quartos']?> quartos</li> <li><?=$row['banheiros']?> banheiros</li> <li><?=$row['vagas']?> vagas</li> <li>Bairro <?=$row['bairro']?></li> </ul> <button type="button" class="w-100 btn btn-lg btn-outline-primary">Cidade <?=$row['cidade']?></button> </div> </div> </div> <?php $row=$query->fetch_assoc(); ?> <div class="col"> <div class="card mb-4 rounded-3 shadow-sm border-primary"> <div class="card-header py-3 text-bg-primary border-primary"> <h4 class="my-0 fw-normal"><img src=<?=$row['imagem']?> width=250 height=200></h4> </div> <div class="card-body"> <h1 class="card-title pricing-card-title"><?=$row['preço']?></h1> <ul class="list-unstyled mt-3 mb-4"> <li><?=$row['quartos']?> quartos</li> <li><?=$row['banheiros']?> banheiros</li> <li><?=$row['vagas']?> vagas</li> <li>Bairro <?=$row['bairro']?></li> </ul> </ul> <button type="button" class="w-100 btn btn-lg btn-outline-primary">Cidade <?=$row['cidade']?></button> </div> </div> </div> </div> </div> </main> -
Nesse caso, os valores das taxas de publicação ficariam assim: Rifa Dif Taxa 0100 --- 07 0250 150 17 0450 200 27 0700 250 37 1000 300 47 1350 350 57 1750 400 67 2200 450 77 De acordo com o enunciado, a taxa de publicação aumenta em uma constante de 10, e o valor da arrecadação aumenta em uma constante de R$ 50,00, e assim calculei o valor da arrecadação. Espero ter ajudado.
-
O enunciado está difícil de entender. uma rifa com 25 números custa R$ 250,00 uma rifa com 50 números custa R$ 500,00 uma rifa com 100 números custa R$ 1.000,00 uma rifa com 150 números custa R$ 1.500,00 uma rifa com 200 números custa R$ 2.000,00 para publicar uma rifa de R$ 100,00 a taxa é de R$ 7,00 para publicar uma rifa de R$ 250,00 a taxa é de R$ 17,00 para publicar uma rifa de R$ 450,00 a taxa é de R$ 27,00 a sua questão é como calcular a taxa de publicação de uma rifa de R$ 500,00, R$ 1.000, R$ 1.500 e R$ 2.000? Acredito que isso não é uma questão de lógica, mas sim de acordo comercial. Ou eu entendi tudo errado?
-
Importar dados de um arquivo xml e gravar no no banco de dados
Frank K Hosaka respondeu ao tópico de Felipe.xavier em PHP
<?xml version="1.0" ?> <NF> <emit> <CNPJ>1111111111111</CNPJ> <xNome>DISTRIBUIDORA DE GAS LTDA.</xNome> <xFant>CARIACICA</xFant> </emit> <dest> <CPF>222222222</CPF> <xNome>ROCHA </xNome> </dest> <prod> <cProd>CB0010</cProd> <cEAN>SEM GTIN</cEAN> <xProd>ONU 1075,GAS LIQUEFEITO PETROLEO (GRANEL),2.1</xProd> <NCM>22222</NCM> </prod> </NF> Consegui consertar o meu arquivo.xml - ele passou pelo Validator do W3School bem como pelo comando simplexml_load_file do PHP. Valeu, Jack, pela sua dica! -
Importar dados de um arquivo xml e gravar no no banco de dados
Frank K Hosaka respondeu ao tópico de Felipe.xavier em PHP
Eu peguei o arquivo.xml do Felipe e tentei adaptar na sugestão do Jack e recebi centenas de erros. O XML não é a minha praia, mas usando o famoso método científico da tentativa e erro, consegui montar esse arquivo.xml: <?xml version="1.0" ?> <emit> <CNPJ>1111111111111</CNPJ> <xNome>DISTRIBUIDORA DE GAS LTDA.</xNome> <xFant>CARIACICA</xFant> <dest> <CPF>222222222</CPF> <xNome>ROCHA </xNome> <prod> <cProd>CB0010</cProd> <cEAN>SEM GTIN</cEAN> <xProd>ONU 1075,GAS LIQUEFEITO PETROLEO (GRANEL),2.1</xProd> <NCM>22222</NCM> </prod></dest></emit> Eu não consegui importar o arquivo.xml no PHP. Para contornar esse contratempo, usei a gambiarra file_get_contents('arquivo.xml') junto com simplexml_load_string, e mesmo assim eu não consegui colocar num Array, mas achei outro caminho para obter as informações e que está nessa lista: <?php // para criar um arquivo XML válido usei https://www.w3schools.com/xml/xml_validator.asp $feed=file_get_contents('arquivo.xml'); $xml = simplexml_load_string($feed); var_dump($xml); echo $remetente_cnpj=$xml->CNPJ."<br>"; echo $destinatario=$xml->dest->CPF."<br>"; echo $produto=$xml->dest->prod->cProd."<br>"; $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("insert into teste (remetente,destino,produto) values($remetente_cnpj,$destinatario,$produto)"); ?> É óbvio que a minha sugestão não encerra o debate, principalmente porque o arquivo.xml e o código PHP estão cheios de gambiarras. -
<php // mysql CREATE TABLE `tab_aprendiz` ( `id` int NOT NULL AUTO_INCREMENT, // `valor` float DEFAULT NULL, PRIMARY KEY (`id`) // ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_swedish_ci $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select sum(valor) as soma from tab_aprendiz"); $linhas=$query->fetch_assoc(); $soma=$linhas['soma']; echo "a soma deu $soma"; O loop while é utilizado quando sabemos que retornarão várias linhas.
-
Vamos lá, já que você não quer usar a função $.ajax, essa é a minha sugestão: <input type="text" id="nome" /><p> <input type="button" value=enviar onclick="resposta.innerHTML=nome.value" /> <div id="resposta"></div>
-
Eu também não fui feliz nas minhas primeiras vinte tentativas. Você precisa ter paciência e ler tudo aquilo que o pessoal pede, tem que preparar o Windows antes de instalar o servidor. O YouTube tem vários vídeos, mas o ruim é que falam de sistemas diferentes ou de versões diferentes do servidor. Tem que ter paciência. O mais chato não é esperar o ícone verde, mas também precisa mexer no sistema de segurançaa do Windows. A minha primeira tentativa foi em 1997. Só consegui instalar o servidor lá em 2020, graças ao servidor consegui conhecer o MySQL e o PHP. Hoje também eu brinco um pouco com Laravel. Enfim ter um servidor (e ainda de graça!) no PC é outra coisa, não tem comparação. Mas mexer nele, eu não mexo. Tenho pavor de mexer nele. E eu só agradeço ao Arquiteto por ele estar funcionando. Boa sorte na próxima tentativa, mas antes do Wamp você precisa instalar tudo o que o pessoal pede no portal que oferece o servidor.
-
O $.ajax é um recurso do JavaScript que tem uma sintaxe com esse padrão $.ajax({ method: "POST", url: "cadastrar.php", data: { nome: "Pedro", email: "pedro@email.com" } }) O URL é um parâmetro necessário para a função $.ajax saber onde mandar solicitações(e em muitos casos aguardar para receber resposta). Caso você não goste da função $.ajax, o JavaScript oferece outros recursos para emular a função assincrona. Acreditamos que podemos ajudar melhor você, se você explicasse exatamente o que você quer, ao invés de ficar sugerindo a mudança das funções.
-
Uau, consegui entrar no fórum iMasters em menos de dois minutos!
Frank K Hosaka postou um tópico no fórum PHP
Acho que a Microsoft fez uma ótima atualização no Windows 11 e assim turbinou o meu notebook para entrar no fórum bem mais rápido. Parabéns à Microsoft! -
O trabalho do PHP é basicamente fazer tarefas no servidor. Veja esse exemplo: pagina2.php ------------------------------------------------------- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script> <script> $(document).ready(function (){ $("#salvar").click(function (){ var form = new FormData($("#formulario")[0]); $.ajax({ url: 'ex3.php', type: 'post', dataType: 'json', cache: false, processData: false, contentType: false, data: form, timeout: 8000, success: function(resultado){ $("#resposta").html(resultado); } }); });}); </script> <form action="" id="formulario" method="post" > <input type="text" name="nome" id="nome" value="" /> <input type="button" id="salvar" name="salvar" value="button" /> </form> <div id="resposta"></div> ex3.php -------------------------------------------------------- <?php if (isset($_POST["nome"])){ $nome = $_POST['nome']; $arquivo = fopen('meuarquivo.txt','w'); if ($arquivo == false) die('Não foi possível criar o arquivo.'); $texto = "$nome $nome $nome"; fwrite($arquivo, $texto);} Esse é um péssimo exemplo de programação. O camarada escreve o nome dele no formulário, o Ajax manda o nome para o ex3.php, o ex3.php escreve o nome do usuário três vezes no arquivo meuarquivo.txt (no meu caso foi gravado no diretório c:\wamp64\www\astudy\meuarquivo.txt), mas o usuário não recebe nenhuma mensagem, pois o código PHP não retorna nenhuma mensagem para o Ajax colocar no HTML. Mas se a intenção era fazer o mesmo serviço sem o AJAX, o código é o que segue, mas ele vai repaginar a tela: ex3.php ---------------------------------------------------- <?php if(isset($_POST['nome'])){ $nome=$_POST['nome']; echo "Olá, Sr $nome, como vai o senhor? <p>"; } ?> <form id="formulario" method="post" > <input type="text" name="nome" id="nome" value="" /> <input type="button" id="salvar" name="salvar" value="button" /> </form> A repaginação é necessária pois o PHP não é capaz de ver o que o usuário escreveu no formulário. Enfim, o PHP é mais útil para dar suporte ao JavaScript botar as informações no HTML. Ou, no meu caso, eu uso porque eu não sei quase nada de HTML.
-
[DIFICULDADE HARD] visualizar os números da notação cientifica exportado do excel
Frank K Hosaka respondeu ao tópico de rsnow em PHP
Fiz um teste por aqui. Coloquei um traço antes dos dois últimos dígitos, salvei como .csv. Depois importei o .csv no Excel e ele veio "completo", com traço e tudo. -
Hahahaha... Eu acabei não entendendo a diferença do Java e do JavaScript, mas eu chamo de Java ou JavaScript aleatoriamente tudo que vem dentro do marcador <script></script> ou dentro de um arquivo .js, bem como eu chamo de PHP tanto os arquivos com a extensão .php ou blade.php. Claro que é muito chato alguém dar o mesmo nome para coisas diferentes, mas estamos no Brasil. Aqui, eu chamo o vencedor das eleições como Senhor Governador, já muitos outros chamam com outro nome. No mundo da informática, eu uso o sistema de tentativa e erro, tipo: <script> k=0 j=0 ob={} async function diario() { form = new FormData(); response=await fetch("php/diario.php", {method: "POST", body: form}); body=await response.json() j=body.length ob=body listadiario()} function listadiario() { if (k<j) { exibe="<table><tr><th>Docto<th>Conta<th>Valor<th>Historico" for (i=k;i<k+15;i++){ if (i==j){break} if (ob[i].debito!=null){valor=parseFloat(ob[i].debito).toLocaleString("pt-br",{minimumFractionDigits:2})} if (ob[i].credito!=null){valor="<font color=red>"+parseFloat(ob[i].credito).toLocaleString("pt-br",{minimumFractionDigits:2})+"</font>"} exibe+="<tr><td>"+ob[i].docto+"<td>"+ob[i].conta+"<td align=right>"+valor+"<td>"+ob[i].hist} if (i!=j) {exibe+="<tr><td><td><td><td><input type=submit value=Continua onclick=listadiario()>"} exibe+="</table>" recdiv.innerHTML=exibe k=i if (k>=j){k=0} }} </script> Isso daí eu copiei de vários tutoriais que encontrei na internet, levei três meses para fazer esse troço funcionar, até que eu consegui. Se o nome disso é Java ou JavaScript, eu não acho importante, eu só sei que passei três meses chorando! O mais importante é que eu não uso esse código. Eu uso o PHP, e estou abandonando o método POST e usando o método GET, enchendo a barra de navegação com um monte de informações que não são sigilosas. Nesse mês eu aprendi a usar o PHP SEM O NAVEGADOR, ele manda a resposta que eu preciso direto na tela de depuração do Visual Studio Code, claro que ao invés de usar "echo" passei a usar "print_r" para tornar legível. Espero que num futuro próximo, o VS Code aceite solicitações do tipo "<input>", esse negócio de ficar alternando entre a janela do editor e do navegador é muito chato!!!!
-
[DIFICULDADE HARD] visualizar os números da notação cientifica exportado do excel
Frank K Hosaka respondeu ao tópico de rsnow em PHP
Se o problema é no Excel, a solução é usar o VBA, assim: Como converter notação científica em texto ou número no Excel? (extendoffice.com)