Ir para conteúdo
Fórum Script Brasil

Frank K Hosaka

Membros
  • Total de itens

    1.579
  • Registro em

  • Última visita

Tudo que Frank K Hosaka postou

  1. É como eu disse, eu não sou bom nessa área, eu mudei a função para CREATE DEFINER=`root`@`localhost` FUNCTION `classi_res`(P1 int, P2 int) RETURNS varchar(1) CHARSET utf8mb3 COLLATE utf8_swedish_ci DETERMINISTIC BEGIN IF P1 > P2 THEN RETURN 'v'; ELSEIF P1 < P2 THEN RETURN 'd'; ELSEIF P1 = P2 THEN RETURN 'e'; END IF; END Para testar a função, eu executei esse comando: update tab_sub07 set RES=classi_res(P1,P2) O resultado deu certo, mas eu recebi a advertência de que estou usando um character set deprecated. Isso eu ainda não sei como resolver.
  2. Eu não sou bom com functions e procedures do MySQL. Eu usei o método da tentativa e erro até criar a função no painel dos objetos, assim: DELIMITER // CREATE FUNCTION classi_res (P1 INT,P2 INT, RES CHAR(1)) RETURNS char(1) CHARSET utf8mb4 DETERMINISTIC BEGIN SET P1= (SELECT P1 FROM tab_sub07); SET P2 = (SELECT P2 FROM tab_sub07); IF P1 > P2 THEN UPDATE tab_sub07 SET RES = 'v'; ELSEIF P1 < P2 THEN UPDATE tab_sub07 SET RES = 'd'; ELSEIF P1 = P2 THEN UPDATE tab_sub07 SET RES = 'e'; END IF; RETURN (0); END// DELIMITER ; Pelo que eu vi no Google, a função é utilizada dentro de um select. Boa sorte.
  3. Eu fiz o teste por aqui com o PHP e o Laravel e os dois só conseguem enxergar a pasta definida pelo Apache, no meu caso, o que estiver dentro de C:\wamp64\www\. A seguir a configuração do Apache: # Virtual Hosts httpd-vhosts.conf <VirtualHost *:80> ServerName localhost ServerAlias localhost DocumentRoot "${INSTALL_DIR}/www" <Directory "${INSTALL_DIR}/www/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local Require ip 192.168.0 </Directory> </VirtualHost>
  4. CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `vw_bal1` AS SELECT `tbconta`.`conta` AS `conta`, COALESCE((SUM((CASE WHEN (`tbdiario`.`contad` = `tbconta`.`conta`) THEN `tbdiario`.`valor` ELSE 0 END)) - SUM((CASE WHEN (`tbdiario`.`contac` = `tbconta`.`conta`) THEN `tbdiario`.`valor` ELSE 0 END))), 0) AS `saldo` FROM ((`diario`.`tbsupervariavel` JOIN `tbconta`) LEFT JOIN `tbdiario` ON (((`tbconta`.`conta` = `tbdiario`.`contad`) AND (`tbdiario`.`dia` < `diario`.`tbsupervariavel`.`primeirodia`)))) GROUP BY `tbconta`.`conta` ORDER BY `tbconta`.`conta` Eu levei o dia inteiro para montar esse view, ele dá o saldo inicial do balancete. Ele funciona para todos os períodos de apuração, menos para o primeiro período de apuração. Eu pensei que o LEFT JOIN já resolvia o problema, mas não resolve não. Com a ajuda do Google, consegui encontrar a dica de como fazer o LEFT JOIN funcionar. Ele disse que para tirar a cláusula WHERE e no lugar colocar a cláusula AND como está no código acima.
  5. Encontrei uma solução bem complicada nesse endereço: Como fazer um download de arquivo para o servidor com php Laravel - Stack Overflow em Português A minha sugestão é tentar fazer o download usando o PHP e depois incorporar no Laravel.
  6. Desde 1990 o meu conhecimento em SQL é precário. Naquela época, eu sabia que o lançamento contábil era formado pelos campos (contad, contac, valor), mas eu não tinha a menor ideia de como transformar o valor em débito e crédito. Então, eu apelei para a gambiarra. Mudei a estrutura do lançamento para (conta,debito,credito). Só em 2022 é que eu tive a coragem de fazer a coisa certa. Agora, o problema é como separar o valor em débito e crédito. Hoje eu consegui encontrar um tutorial de como fazer um balancete nesse endereço: MySQL, Banco de Dados | SALDO DE DEBITO E CREDITO NO MESMO REGISTRO - MYSQL - Fórum DevMedia, tentei adaptar aqui no meu projeto, mas eu não consegui. Eu sou péssimo em SQL, mas usando o terminal do MySQL Workbench, finalmente eu consegui separar o valor do débito e crédito, graças a Deus: select contad, contac, (case when contad>0 then valor end) debito, (case when contac>0 then valor end) credito from tbdiario; Em 1990, eu não teria a menor chance de criar um código desses. Nem em 2022. Tudo depende da sorte de encontrar o tutorial e entendê-lo.
  7. Hahahahahaha... muito obrigado mesmo, eu pensei que estava usando um editor imprestável.
  8. Eu recebi muitas mensagens de erro de sintaxe no VS Code na hora que fui testar o seu primeiro Array. Ele ficou assim: <?php $array=Array ( [0] => Array ( "estab" => 2, "serie" => "OC", "numero" => 56834, "seqItem" => 1, "item" => 56834, "descricao" => "MOSAIC - 20.00.20", "qtd" => 12, "grupo" => 24002, "descricaoGrupo" => "FERTILIZANTES CONVENCIONAIS", "dataProgramada" => "10-11-22", "dataInclusao" => "01-11-22", "obs" => null) ); As chaves são aspadas, as chaves e os valores são separados por vírgulas, a chave e o valor sempre vem em par (nunca vem sozinho como acontece com [obs] do seu exemplo). Que editor de texto você usa?
  9. Eu encontrei uma resposta afirmando que o Brasil tem 5.570 cidades em 2016, outra afirma que o Brasil tem 5.565 cidades em 2022, e no Wikipedia eu encontrei 5568 cidades. Todas elas estão aqui: <?php // fonte: https://pt.wikipedia.org/wiki/Lista_de_munic%C3%ADpios_do_Brasil // salvei no diretorio c:\wamp64\www\astudy\municipios.html $municipios=file_get_contents("municipios.html"); $pos0=0; for($i=1;$i<=5568;$i++){ $pos1=strpos($municipios,"<li>",$pos0); $pos1a=strpos($municipios,"title",$pos1); $pos1b=strpos($municipios,">",$pos1a)+1; $pos1c=strpos($municipios,"<",$pos1b); $pos2=strpos($municipios,"</li>",$pos1); echo substr($municipios,$pos1b,$pos1c-$pos1b); echo " => "; echo substr($municipios,$pos1c+6,2); echo "<br>"; $pos0=$pos2;}
  10. Achei a solução: <?php $text = "Afonso Cláudio"; echo utf8_decode($text);
  11. Encontrei na internet uma lista com todas as cidades do Brasil nesse endereço: https://gist.githubusercontent.com/zerobugs-oficial/53d692e5bec98d4b805dc5501dd5b157/raw/b9c4d0f538a83d5abf2d07d901055059fd20f442/cidades_estados_brasil.sql Mas ao invés de Maranhão, encontrei Maranhão. Tentei usar o editor de texto para tentar salvar como UTF-8 ou ANSI, mas nada mudou. Tentei usar o comando PHP htmlspecialchars_decode("Maranhão"); mas nada mudou. Alguém tem algum truque legal que transforme texto estranho em menos estranho?
  12. astudy.php -------------------------------------------------- <?php function tentativa($texto){ $tamanhopadrao=strlen("2020-05-26"); $tamanho=strlen($texto); $texto=substr($texto,0,$tamanho-$tamanhopadrao); $novotamanho=strlen($texto); if(strpos($texto,"Palavras")==35) {return substr($texto,43,$novotamanho);} if(strpos($texto,"coisa")==43) {return substr($texto,48,$novotamanho);} } $texto1="Qualquer texto de qualquer tamanho.Palavras65.00002020-05-26"; $texto2="Qualquer texto de qualquer tamanho.Qualquercoisa127.00002020-05-26"; $teste1=tentativa($texto1); $teste2=tentativa($texto2); echo "$teste1 $teste2";
  13. O que eu consegui entender é que se trata de um orçamento. No meu projeto, tenho o seguinte código: <?php $menu="Orçamento"; require 'menu.php'; echo "<script>document.title='Orçamento'</script>"; // abrir o pedido pela tbsupervariavel echo "<div><table class='table table-striped'>"; $query=$mysqli->query("select ped from tbsupervariavel"); $row=$query->fetch_assoc(); $ped = $row['ped']; echo "<td><form method='post'><input type='submit' value='anterior'><input type='hidden' name='anterior' value=$ped></form>"; echo "<td><font color=red>Pedido $ped "; $query=$mysqli->query("update tbsupervariavel set end='orcamento.php'"); $query=$mysqli->query("select * from tbpedido where ped=$ped"); $row=$query->fetch_assoc(); $diaped = df($row['dia']); $total = dec($row['total']); $codp = $row['codp']; echo "de $diaped"; echo "<td><form method='post'><input type='submit' value='novo'><input type='hidden' name='novo' value=$ped></form></table></div>"; if (empty($codp)) { $java='<a onclick=location.replace("pessoa.php")>Mudar de Cliente</a>'; $dados = "<a href='pessoa.php'>Selecione um cliente</a>"; $pessoa = $dados; echo "<script>pessoadiv.innerHTML='$java'</script>"; } else { $query=$mysqli->query("select * from tbpessoa where codp=$codp"); $row=$query->fetch_assoc(); $pessoa=$row['pessoa']; $end=$row['end']; $cnpj=$row['cnpj']; $tel=$row['tel']; $nota=$row['nota']; $java1='location.replace("pessoa.php")'; $java2='inpg.value='.$codp.';inpg.name="detalhe";frmg.action="pessoa.php";frmg.submit()'; $dados="<details><summary><b>$pessoa</b></summary>Endereço:<b> $end</b>" ."<br>CNPJ CPF: <b>$cnpj</b><br>Telefone:<b> $tel</b><br>Nota:<b> $nota</b>" ."<br><font color=red><a onclick=$java1>Mudar de Cliente</a>" ."<br><font color=red><a onclick=$java2>Atualizar Cliente</a>" ."</details>";} // atualizar produto selecionado if (isset($_GET['atualizar'])){ $codprod = $_GET['atualizar']; $query=$mysqli->query("update tbsupervariavel set codprod=$codprod"); header("location:detalheproduto.php");} //pedido novo if (isset($_POST['novo'])) { $query=$mysqli->query("select * from tbpedido order by ped desc"); $row = $query->fetch_assoc(); $ultped = $row['ped']; $query=$mysqli->query("update tbsupervariavel set ped = $ultped"); $total = $row['total']; if ($total>0){ $dia=date('Y-m-d'); $ultped = $ultped + 1; $query=$mysqli->query("insert into tbpedido (ped,dia) values ($ultped,'$dia')"); $query=$mysqli->query("update tbsupervariavel set ped = $ultped");} echo "<script>location.replace('orcamento.php');</script>";} //pedido anterior if (isset($_POST['anterior'])){ if ($ped > 1) { $ped=$ped-1; $query=$mysqli->query("update tbsupervariavel set ped=$ped"); echo "<script>location.replace('orcamento.php');</script>";}} //rotina para excluir item do pedido if (isset($_POST['excluir'])) { $id = $_POST['excluir']; $query=$mysqli->query("delete from tbhistped where id=$id"); $query=$mysqli->query("select sum(subtotal) as total from tbhistped where ped = $ped"); $total = $query->fetch_assoc()['total']; if (empty($total)) {$total=0;} else {$total=round($total,2);} $query=$mysqli->query("update tbpedido set total = $total, dia = '".date('Y-m-d')."' where ped = $ped"); echo "<script>location.replace('orcamento.php')</script>";} //detalhes do pedido atual echo "<div><table class='table table-striped linha2'><th>Produto<th>Qt<th>Un<th>Preço<th>Total"; $sql="select tbhistped.id,tbhistped.ped, tbhistped.codprod, tbhistped.qt as qt, tbhistped.unitario as unitario, tbhistped.subtotal,"; $sql.="tbprod.prod as prod, tbprod.un as un "; $sql.="from tbhistped inner join tbprod on tbhistped.codprod = tbprod.codprod and tbhistped.ped = $ped order by tbhistped.id"; $query = $mysqli->query($sql); while ($row = $query->fetch_assoc()) { $un = $row['un']; $id = $row['id']; $un = "<a href='#' onclick='excluir($id)'>$un</a>"; echo "<tr><td>".$row['prod']."<td align=right>".dec($row['qt'])."<td>$un<td align=right>".dec($row['unitario']); echo "<td align=right>".dec($row['subtotal']); } //incluir item no pedido (frontend) if (isset($_POST['inclusao'])) { $prod=$_POST['inclusao']; $query = $mysqli->query("select * from tbprod where prod='$prod'"); if($query==false){header('orcamento.php');} $row=$query->fetch_assoc(); $codprod=$row['codprod']; $custo = $row['custo']; $margem = $row['marg']; $custo = pvenda($custo,$margem); // calculo do preço de venda echo "<tr><td>".$row['prod']."</td><td>"; echo "<form method='post'><input name='qt' autocomplete=off id='inpqt' size='2' >"; echo "<input type='hidden' name='codprod' value=$codprod>"; echo "<input type='hidden' name='unitario' value=$custo>"; echo "<input type='hidden' name='ped' value=$ped></td><td>".$row['un'].""; echo "</td><td align=right>$custo</td></td>"; echo "<tr><td>$dados</form></table></div>"; echo "<script>inpqt.focus()</script>";} else { $query1=$mysqli->query("select prod from tbprod order by prod"); $java="inpg.name='inclusao';inpg.value=value;frmg.submit()"; echo "<tr><td><input type=text id=inproduto list=produto onchange=$java placeholder=produto autofocus>"; echo "<datalist id='produto'>"; while($row1=$query1->fetch_assoc()) { $prod=$row1['prod']; echo "<option>$prod</option>";} echo "</datalist><tr><td>"; echo "$dados"; echo "<td><td><td><td><b>".$total.'</table></div>';} //incluir item no pedido (backend) if (isset($_POST['qt'])) { $qt=deca($_POST['qt']); $codprod = $_POST['codprod']; $unitario = deca($_POST['unitario']); $subtotal = round($qt * $unitario,2); $ped = $_POST['ped']; $query=$mysqli->query("insert into tbhistped (ped,qt,codprod,unitario,subtotal) values ($ped,$qt,$codprod,$unitario,$subtotal)"); $query=$mysqli->query("select sum(subtotal) as total from tbhistped where ped = $ped"); $total = $query->fetch_assoc()['total'];$total=round($total,2); $query=$mysqli->query("update tbpedido set total = $total, dia = '".date('Y-m-d')."' where ped = $ped"); echo "<script>location.replace('orcamento.php')</script>";} ?>
  14. Foi em 2020 que comecei a estudar o PHP. Naquela época usava o Notepad+ para editar o código PHP e o navegador para testar o código. Em 2022, comecei a estudar o Laravel (é um novo tipo de PHP, com nova gramática, e força você codificar em pelo menos três partes separadas, o controlador, o visualizador e o roteador). O Laravel mudou tudo, a começar pelo editor de código, substitui o Notepad+ pelo Visual Studio Code. Tem muita coisa que eu consegui fazer no PHP mas não consegui fazer no Laravel. Para resolver isso, eu tive que melhorar o banco de dados. Na hora que eu tentei otimizar o banco de dados é que eu percebi que ele tem um gigantesco erro de lógica, ele não respeita a definição de lançamento contábil. Então, decidi deixar o Laravel de lado e comecei a consertar o banco de dados, com a ajuda de uma caneta, um papel e uma calculadora. Percebi que estava escrevendo a mesma coisa e fazendo o mesmo tipo de cálculo, então eu comecei a codificar em PHP. Para testar o PHP, eu usei o navegador. E o meu notebook ficou com três janelas abertas, um no MySQL, outro no PHP (Visual Studio) e outro no navegador, isso é janela demais! Eu pensei: que bom seria se eu pudesse trabalhar em apenas uma janela! Hoje eu decidi usar o comando Executar > Executar sem depuração, e eu recebi a resposta do código PHP na janela Console de Depuração do Visual Studio. Para deixar o MySQL de lado, só preciso melhorar o código PHP para que o PHP olhe para mim o que acontece lá no banco de dados. Esse Visual Studio Code é bom demais!
  15. Nem tudo você pode escrever em caixa baixa no PHP, tipo $_SESSION, $_GET, $_POST, $_SEVER.
  16. Já consegui criar 100 lançamentos contábeis. Mas é bem trabalhoso. Para facilitar o trabalho usei o PHP, criei cinco códigos: astudy.php --------------------------- <?php // um débito e um crédito genérico $mysqli=new mysqli("localhost","root","","astudy"); for($lcto=86;$lcto<=100;$lcto++){ // base=182 $docto1=$lcto*2+10; $docto2=$docto1+1; $query=$mysqli->query("select * from tbdiariobk where docto=$docto1"); $row=$query->fetch_assoc(); $dia=$row['dia']; $contad=$row['conta']; $valor=$row['debito']; $hist=$row['hist']; $query2=$mysqli->query("select * from tbdiariobk where docto=$docto2"); $row2=$query2->fetch_assoc(); $contac=$row2['conta']; if($valor!=$row2['credito']){echo "valores divergentes em ".$row2['docto'];exit;} $sql="insert into tbdiario (lcto,dia,contad,contac,valor,hist) values ($lcto,'$dia',$contad,$contac,$valor,'$hist')"; $query3=$mysqli->query($sql); $row3=$query->fetch_assoc();} astudy2.php ---------------------------------- <?php // multiplos débitos $mysqli=new mysqli("localhost","root","","astudy"); $lcto=74; for($docto1=154;$docto1<=158;$docto1++){ $query=$mysqli->query("select * from tbdiariobk where docto=$docto1"); $row=$query->fetch_assoc(); $dia=$row['dia']; $contad=$row['conta']; $valor=$row['debito']; $hist=$row['hist']; $sql="insert into tbdiario (lcto,dia,contad,valor,hist) values ($lcto,'$dia',$contad,$valor,'$hist')"; $query3=$mysqli->query($sql); $row3=$query->fetch_assoc();} astudy3.php -------------------------------------------------------- <?php // um crédito $mysqli=new mysqli("localhost","root","","astudy"); $lcto=85; $docto1=575; $query=$mysqli->query("select * from tbdiariobk where docto=$docto1"); $row=$query->fetch_assoc(); $dia=$row['dia']; $contac=$row['conta']; $valor=$row['credito']; $hist=$row['hist']; $sql="insert into tbdiario (lcto,dia,contac,valor,hist) values ($lcto,'$dia',$contac,$valor,'$hist')"; $query3=$mysqli->query($sql); $row3=$query->fetch_assoc(); astudy4.php ----------------------------------------------- <?php // um débito $mysqli=new mysqli("localhost","root","","astudy"); $lcto=85; $docto1=575; $query=$mysqli->query("select * from tbdiariobk where docto=$docto1"); $row=$query->fetch_assoc(); $dia=$row['dia']; $contad=$row['conta']; $valor=$row['debito']; $hist=$row['hist']; $sql="insert into tbdiario (lcto,dia,contad,valor,hist) values ($lcto,'$dia',$contad,$valor,'$hist')"; $query3=$mysqli->query($sql); $row3=$query->fetch_assoc(); astudy5.php ------------------------------------------------------------ <?php // um débito e um crédito particular $mysqli=new mysqli("localhost","root","","astudy"); $lcto=68; $docto1=141; $docto2=142; $query=$mysqli->query("select * from tbdiariobk where docto=$docto1"); $row=$query->fetch_assoc(); $dia=$row['dia']; $contad=$row['conta']; $valor=$row['debito']; $hist=$row['hist']; $query2=$mysqli->query("select * from tbdiariobk where docto=$docto2"); $row2=$query2->fetch_assoc(); $contac=$row2['conta']; if($valor!=$row2['credito']){echo "valores divergentes em ".$row2['docto'];exit;} $sql="insert into tbdiario (lcto,dia,contad,contac,valor,hist) values ($lcto,'$dia',$contad,$contac,$valor,'$hist')"; $query3=$mysqli->query($sql); $row3=$query->fetch_assoc();
  17. Hoje eu tenho uma tbdiario com 14.000 registros, quando o correto era ter apenas a metade. Eu criei um campo chamado débito e outro chamado crédito, quando o correto era ter apenas um campo chamado valor. Hoje usei as variáveis no MySQL, e gostei a beça, consegui pegar dois registros errados e criar um registro certo, assim: set @lcto=1; select @dia:=dia, @contad:=conta, @valor:=debito, @hist:=hist from tbdiariobk where docto=1; select @contac:=conta from tbdiariobk where docto=2; insert into tbdiario (lcto,dia,contad,contac,valor,hist) values (@lcto,@dia,@contad,@contac,@valor,@hist); A estrutura da tabela errada é essa: `tbdiariobk` ( `docto` mediumint NOT NULL AUTO_INCREMENT, `dia` date DEFAULT NULL, `conta` mediumint DEFAULT NULL, `debito` decimal(13,2) DEFAULT NULL, `credito` decimal(13,2) DEFAULT NULL, `hist` varchar(100) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL, PRIMARY KEY (`docto`)) A estrutura da tabela certa é essa: `tbdiario` ( `idiario` mediumint NOT NULL AUTO_INCREMENT, `lcto` mediumint NOT NULL, `dia` date DEFAULT NULL, `contad` mediumint DEFAULT NULL, `contac` mediumint DEFAULT NULL, `valor` decimal(13,2) DEFAULT NULL, `hist` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`idiario`) ) Agora, consertar 14.000 registros errados em 7.000 certos, isso é coisa que eu pretendo resolver com a ajuda do PHP.
  18. Depois de dois meses estudando o Laravel, hoje chegou a vez de ver o Laravel no celular. Eu digitei 192.168.0.12:8000 no navegador do celular, mas eu não consegui conectar. Consultando o Google, ele me informou que devo ativar o servidor do artisan assim: php artisan serve --localhost=192.168.0.12 Para acessar o Laravel pela internet, eu ainda não pesquisei se tem algum hospedeiro (gratuito) que usa esse programa, mas aqui no meu notebook eu posso usar o ngrok, ao invés de ativar para a porta 80, eu ativo para a porta 8000, assim: ngrok http 8000
  19. <?php // astudy.php // mysql: TABLE `tbcidades` (`id` int AUTO_INCREMENT pk,`uf` varchar(2),`cidade` varchar(45)) $mysqli=new mysqli("localhost","root","","astudy"); if(!isset($_GET['uf'])){ $query=$mysqli->query("select uf from tbcidades group by uf order by uf"); echo "<form>"; echo "<input list='uf' name='uf' placeholder='selecione o estado'>"; echo "<datalist id='uf'>"; while($row=$query->fetch_assoc()){echo "<option value=".$row['uf'].">";} echo "</datalist></form>"; exit;} $uf=$_GET['uf']; echo "estado: $uf <input type=submit value='mudar de estado' onclick=location.replace('astudy.php')>"; $query=$mysqli->query("select cidade from tbcidades where uf='$uf' order by cidade"); echo "<p><input list='cidades' placeholder='selecione a cidade'>"; echo "<datalist id='cidades'>"; while($row=$query->fetch_assoc()){echo "<option value=".$row['cidade'].">";} echo "</datalist>";
  20. Eu ainda não testei, mas encontrei um tutorial de como corrigir esse erro, quando atualizo o banco de dados no servidor hospedeiro. Eu uso o orgfree.com. Por enquanto só uso para fazer teste, e o código PHP não funciona quando ele precisa de uma view definida no MySQL: #1273 – Unknown collation ao importar um banco de dados - KingHost
  21. Estou bastante contente com o Laravel, graças a ele descobri que o meu banco de dados Diário está completamente errado. Eu não tenho a menor ideia de como consertar o banco de dados. Assim, ao invés de fazer a coisa certa, eu vou persistir no erro. Ou seja, vou continuar estudando o Laravel, mesmo sabendo que o banco de dados e o código PHP estão bastante equivocados. Eu consegui fazer o balancete no PHP, mas o Laravel me obrigou a fazer o balancete no MySQL. O Laravel recebe o balancete no controller com essa instrução: $contas=vw_balanco::all(); Usando a função dd($contas) eu consegui enxergar uma impressionante espaçonave, cheio de alienígenas. Qual é o nome dessa espaçonave? Isto está no topo da página, o Laravel chama de Illuminate\Database\Eloquent\Collection. Eu sei como calcular a receita pelo Eloquent, mas nunca somei coisa alguma com o Collection. Pedi ajuda no Google, e eu cheguei nesse comando: $receita=$contas->whereBetween('conta',[301,304])->sum('final'); Ele funciona! Eu não tenho a menor ideia de como o Laravel consegue fazer, mas funciona! No PHP, eu precisei de dezenas e dezenas de linhas para chegar no mesmo resultado.
  22. Esse é um trabalho bem difícil, mas o máximo que eu consegui foi assim usuário (nome,codempresa) ("zé",1) ("zé",3) empresas(codempresa,empresa) (1,"Bradesco") (3,"Itaú") E a consulta ficaria assim SELECT nome,GROUP_CONCAT(empresa) FROM usuario INNER JOIN empresas on usuario.codempresa = empresas.codempresa GROUP BY nome; #resultado: zé Bradesco,Itaú Ou seja, eu consigo chegar no mesmo resultado, desde que defina um código de empresa para cada usuário. No caso do zé, eu posso cadastrar um novo banco, entrando com o nome dele e o código do novo banco, que eu acho que é bem mais fácil do que ficar editando um campo de valores múltiplos.
  23. Eu fiz uma bela abreviação (preguiça de digitar): UPDATE cadmer, inv SET cadmer.nbm = inv.ncm WHERE cadmer.Codigo = inv.Codigo; Gostei desse código, não sabia que era possível atualizar uma tabela baseado no valor de outra tabela. Bacana!
  24. Eu nunca tive esse problema com o VS Code, mas navegando pela internet encontrei matéria que fala do problema da autenticação no MySQL: mysql - Authentication plugin 'caching_sha2_password' cannot be loaded - Stack Overflow
  25. Acredito que o arquivo .php inclui o recurso do <meta charset=utf-8>, já o arquivo .html requer esse comando para o texto aparecer "aportuguesado". O problema é que eu só tenho um notebook, e não consigo enxergar o lado do cliente e o lado do servidor. Agradeço pela sua observação no fechamento dos marcadores. Em matéria de HTML eu sou um péssimo exemplo.
×
×
  • Criar Novo...