
Frank K Hosaka
Membros-
Total de itens
1.623 -
Registro em
-
Última visita
Tudo que Frank K Hosaka postou
-
como faço um foreach no json
pergunta respondeu ao adrsublimacao de Frank K Hosaka em Tutoriais & Dicas - PHP
Bom, eu não sou especialista como informei logo no começo da minha resposta. Tudo que eu faço é tentativa e erro, já esse último response que você passou foi bem fácil de trabalhar. Eu não tenho como pegar o seu json, mas apenas o string que aparece na tela. Peguei o string e... <?php $string= (aqui eu copiei o response que foi divulgado na mensagem) $json=json_decode($string); echo "Pedido ".$json->id."<br>"; echo "Cliente ".$json->customer->name."<br>"; echo "itens ".count($json->items)."<p>"; $items=$json->items; foreach($items as $item){ echo $item->name."<br>"; echo "adicionais ".count($item->options)."<br>"; foreach($item->options as $option){ echo $option->name."<br>"; } echo "<p>"; } Resultado: Pedido 5e58177c-d8f2-41cf-9277-7fa742806f03 Cliente PEDIDO DE TESTE - adriano rosa do prado itens 3 PEDIDO DE TESTE - MÉDIA (6 PEDAÇOS) adicionais 2 Portuguesa Massa Tradicional + Borda Recheada PEDIDO DE TESTE - Bebida teste 100 ml adicionais 1 Laranja PEDIDO DE TESTE - Sanduíche adicionais 2 Complemento 1 Complemento 6 Ou seja, eu só faço tentativa e erro. Como o seu response é um json, você não precisa da primeira linha desse código, apenas eu. -
como faço um foreach no json
pergunta respondeu ao adrsublimacao de Frank K Hosaka em Tutoriais & Dicas - PHP
Isso daí é bem difícil, faz dois anos que eu tento resolver esse tipo de problema, e nunca consegui. Você diz que isso daí é json, mas aqui no meu PC eu vejo apenas como string. Eu tentei transformar o string em json, assim $json=json_decode($string), mas a resposta que eu tive foi null. Durante dois anos eu desisti de resolver esse tipo de problema, mas hoje eu tive a coragem de pegar o editor de texto, e transformar tudo que é { em [, e tudo que é } em ], e tudo que é : em =>, ou seja, montei um array. Aí sim eu consegui fazer alguma coisa! Olha só: <?php $adr=["items"=> [ [ "index"=> 1, "id"=> "26845888-7547-3346-800d-9e3ae0353804", "uniqueId"=> "3fc4a0e3-f25e-46f7-a1e4-b66ecdb88152", "name"=> "PEDIDO DE TESTE - MÉDIA (6 PEDAÇOS)","externalCode"=> "t02", "unit"=> "UN","quantity"=> 1,"unitPrice"=> 0.00,"optionsPrice"=> 24.00, "totalPrice"=> 24.00, "options"=> [ [ "index"=> 2,"id"=> "a8b24880-b3f6-390a-8514-77bd7b2055aa", "name"=> "Calabresa","externalCode"=> "c02-i002", "unit"=> "UN","quantity"=> 1,"unitPrice"=> 20.00, "addition"=> 0.00,"price"=> 20.00], [ "index"=> 3,"id"=> "893622be-1730-318e-a486-b2dd4fdfa87d", "name"=> "Massa Fina + Borda Recheada","externalCode"=> "m02", "unit"=> "UN","quantity"=> 1,"unitPrice"=> 4.00, "addition"=> 0.00,"price"=> 4.00]], "price"=> 0.00], [ "index"=> 4, "id"=> "b78d3091-cead-4c12-a06a-1440b3176c77", "uniqueId"=> "663ff728-af46-41ae-bb8d-4ffcc1b961e4", "name"=> "PEDIDO DE TESTE - Bebida teste 100 ml", "unit"=> "GRAMS","quantity"=> 1,"unitPrice"=> 10.00,"optionsPrice"=> 10.00, "totalPrice"=> 20.00, "options"=> [ [ "index"=> 5,"id"=> "d4603ddd-3519-4fcb-a450-29e06ab5d9ff", "name"=> "Laranja", "unit"=> "UN","quantity"=> 1,"unitPrice"=> 10.00, "addition"=> 0.00,"price"=> 10.00]], "price"=> 10.00], [ "index"=> 6, "id"=> "e8f9f490-2a56-4bb8-a9d3-5e9b72fe027c", "uniqueId"=> "98de1e93-ba34-48bb-8f75-1b8c21e43fd1", "name"=> "PEDIDO DE TESTE - Sanduíche", "externalCode"=> "c01-i001", "unit"=> "GRAMS","quantity"=> 1,"unitPrice"=> 20.00,"optionsPrice"=> 1.00, "totalPrice"=> 21.00, "options"=> [ [ "index"=> 7, "id"=> "1101565b-dc4b-44d3-9e82-b7c4b07397f3", "name"=> "Complemento 1", "unit"=> "UN","quantity"=> 1,"unitPrice"=> 1.00, "addition"=> 0.00,"price"=> 1.00], [ "index"=> 8, "id"=> "42e8a1f3-6f3e-4370-9223-05464f5be701", "name"=> "Complemento 6", "unit"=> "UN","quantity"=> 1,"unitPrice"=> 0.00, "addition"=> 0.00,"price"=> 0.00]], "price"=> 20.00]]]; //var_dump($adr); foreach($adr as $a){ foreach($a as $b){ echo $b['name']."<br>"; } } /* resultado: PEDIDO DE TESTE - MÉDIA (6 PEDAÇOS) PEDIDO DE TESTE - Bebida teste 100 ml PEDIDO DE TESTE - Sanduíche */ mas, no seu caso, se você tiver um json de verdade, acho que esse código vai funcionar foreach($meujson as $items) { foreach($items as $item) { echo $item->name; }} A minha sugestão é sempre trabalhar com a função var_dump(), esse é o melhor caminho para estudar o PHP, e estudar a função dd() no caso do Laravel. -
Eu não consegui encontrar o tutorial que explica como pegar um valor selecionado do modal do Bootstrap 5.2. Assim, eu improvisei, criei uma função Javascript lançar (que pega o nome dos elementos que precisam da informação) e registro (que responde à rotina lançar). O meu código vem em seguida, mas antes queria perguntar se alguém sabe se o modal do Bootstrap 5.2 tem uma instrução própria para devolver o valor selecionado a quem pediu. <link href=assets/bootstrap.min.css rel=stylesheet> <script src=assets/bootstrap.bundle.min.js></script> <script> var lçto = ""; var descrição = ""; function lançar(id,jd) {lçto=id; descrição=jd;} function registro(id,jd) {eleconta=document.getElementById(lçto); eledescrição = document.getElementById(descrição); eleconta.value=id; eledescrição.innerHTML=jd;} </script> <table> <tr><td>ContaD<td> <input id=idebito name=debito onclick="lançar(id,'adebito')" data-bs-toggle="modal" data-bs-target="#myModal" size=2 autocomplete=off> <td><a id=adebito></a> <tr><td>ContaC<td> <input id=icredito name=credito onclick="lançar(id,'acredito')" data-bs-toggle="modal" data-bs-target="#myModal"size=2 autocomplete=off> <td><a id=acredito></a> </table> <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbconta where conta>400 limit 10"); ?> <div class="modal" id="myModal"><div class="modal-dialog"><div class="modal-content"> <div class="modal-body"> <table class="table table-striped linha"> <?php while($row=$query->fetch_assoc()){$ct=$row['conta'];$dc=$row['descricao']?> <tr><td> <a class=link-primary data-bs-dismiss="modal" onclick=registro(<?=$ct?>,'<?=$dc?>')> <?=$ct." ".$dc?> </a> <?php } ?> </div></div></div></div>
-
Validar se a variável é diferente de vazio (!="")
pergunta respondeu ao Alysson Azevedo de Frank K Hosaka em PHP
Sem efeito. -
Condição iReport Boleto
pergunta respondeu ao thiagoaf19 de Frank K Hosaka em Tutoriais & Dicas - PHP
kkkk... se você gosta de ternário, o correto é utilizar o canal da Lógica desse fórum. Lá, os ternários são bem mais fáceis de entender, tipo Se meu programa não funciona então eu desisto.- 4 respostas
-
- relatorios php
- php
- (e %d mais)
-
Condição iReport Boleto
pergunta respondeu ao thiagoaf19 de Frank K Hosaka em Tutoriais & Dicas - PHP
Se isso fosse PHP, acho que a gramática seria $F['noti_autogenerator'] = "" ? "Tipificação da Infração" : "Tipificação da Infração Originária"; ou algo do tipo: $if($noti_autogenerator==""){$noti_autogenerator="Tipificação da Infração";}else{$noti_autogenerator="Tipificação da Infração Originária";} o problema é que eu não nenhuma experiência com o iReport.- 4 respostas
-
- relatorios php
- php
- (e %d mais)
-
pegar somente o valor do "access_token" ao invés de toda a array
pergunta respondeu ao adrsublimacao de Frank K Hosaka em PHP
Eu não sou especialista no assunto, eu só sei usar o método da tentativa e erro: Se eu pegar https://merchant-api.ifood.com.br/order/v1.0/events:polling e jogar diretamente no navegador, eu tenho essa mensagem {"message": "no jwt token"}. Se eu pegar https://merchant-api.ifood.com.br/order/v1.0/orders/61e260a2-002a-428f-b736-de84447c0385/confirm e jogar diretamente no navegador, ele retorna {"message":"no Route matched with those values"}, ou seja, não importa o quanto você capriche no CURL, o servidor não vai conseguir retornar. Acredito que a turma do iFood poderá ajudá-lo melhor nesse caso. Usando o manual iFood Developer | Order, improvisei o seguinte: https://merchant-api.ifood.com.br/orders/61e260a2-002a-428f-b736-de84447c038A mas a mensagem é a mesma. Acredito que o número do pedido não existe. -
Echo Tela linha sql em Php
pergunta respondeu ao thiagoaf19 de Frank K Hosaka em Tutoriais & Dicas - PHP
<?php if ($_SESSION ['tipoAutuacao'] == 'T') { $sql = $modelBoleto->GeradorBoleto ( $_SESSION ['orgaoCod'], $autos, $_SESSION ['tipoAutuacao'], 'PEN', 'S', '6291' ); $rel = "boletoPenTN"; } else { $sql = $modelBoleto->GeradorBoleto ( $_SESSION ['orgaoCod'], $autos, $_SESSION ['tipoAutuacao'], 'PEN', 'S', '6291' ); $rel = "boletoPenPN";} echo "rel $rel sql $sql"; Esse código está visivelmente errado. O código do primeiro $sql é o mesmo do segundo $sql. -
pegar somente o valor do "access_token" ao invés de toda a array
pergunta respondeu ao adrsublimacao de Frank K Hosaka em PHP
Usando o método da tentativa e erro, pode ser que o CURL esteja recebendo um objeto e não uma string. Tente assim: $jresponse=$response ao invés de $jresponse=json_decode($response). Eu não tenho como acompanhar, pois não tenho nenhum $clientId e nem $clientSecret. Note que no primeiro exemplo tinhamos o seguinte "string" {"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGl","token_type":"bearer","expires_in":86399} e agora temos um novo "string" assim [{"id":"fde9a8ad-6dba-462a-92e8-f606238b916e","code":"PLC","fullCode":"PLACED","orderId":"00201035-360c-4862-adef-4c74ed8da5e3","merchantId":"b053eb1d-294a-4a42-806b-a46f5e6517b6","createdAt":"2022-12-27T00:21:56.594Z"}] ou seja, nós temos colchetes. Os dois parecem iguais, mas não são. O primeiro é japones e precisa transformar em Json. O segundo é chinês, e tudo indica que você não precisa transformar em japonês. As aparencias sempre enganam. -
Blog WP tem propaganda de cassino e jogos online como se livrar disso?
pergunta respondeu ao The_Overmix de Frank K Hosaka em PHP
Eu acho difícil controlar a internet. Existem toneladas de material publicitário que induzem ao internauta a escolher o caminho espaçoso da perdição como a Mega-Sena, o Facebook, o Instagram, só para citar alguns. Mas, ontem, um importante aniversariante anunciou há muito tempo que o Pai vai separar o joio do trigo, e queimar tudo. Não sei qual dos dois Ele vai queimar primeiro. -
pegar somente o valor do "access_token" ao invés de toda a array
pergunta respondeu ao adrsublimacao de Frank K Hosaka em PHP
No painel esquerdo tem um controlador de pontuação. Deixa um ponto para mim para conseguir um emprego no Fórum, estou desempregado desde 1999. -
pegar somente o valor do "access_token" ao invés de toda a array
pergunta respondeu ao adrsublimacao de Frank K Hosaka em PHP
Logo, a segunda solução é que vale, você transforma $response em json com o comando $jresponse=json_decode($response), e depois você pode isolar o token assim $token=$jresponse->access_token, e na hora de mandar para o banco de dados, você usa a variável $token e não o $response. -
Blog WP tem propaganda de cassino e jogos online como se livrar disso?
pergunta respondeu ao The_Overmix de Frank K Hosaka em PHP
Como eu nunca li a Constituição Federal de 1988, eu não sei se o anúncio do cassino na internet é crime ou não; eu sei que a Caixa Econômica promove a Mega-Sena, e ninguém toma nenhuma providência. Já o método da comercialização, o único que eu conheço é o dinheiro. Na Caixa Econômica, você só pode participar da loteria se tiver dinheiro. Eu não conheço nenhum outro método de comercialização. -
pegar somente o valor do "access_token" ao invés de toda a array
pergunta respondeu ao adrsublimacao de Frank K Hosaka em PHP
Testei o código aqui, mas como eu não tenho $clienteId e nem o $clientSecret, eu não sei exatamente o que tem no $reponse. Se for um objeto, eu obteria o token assim: $token=$response->access_token; Se for um string, eu obteria o token assim: $jresponse=json_decode($response); $token=$jresponse->access_token; -
Undefined type 'Session' Intelephense (1009)
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em PHP
Continuei a pesquisa no Google, imaginando que o problema estava nas dependências do Laravel. Segui os tutoriais, mas o VS Code continuava reclamando do mesmo código. Eu olhei o meu celular e vi uma mensagem do Laracast, o Sinnbeck respondeu assim: Why not do that in the controller and pass it down as data if it needs to be bound to a variable? Or just use this wherever you need it {{session('success')}} Pelo pouco que eu sei de inglês, o Sinnbeck quis dizer que há um erro de lógica, o sucesso da conexão deveria ser passado pelo controlador ou usar a variável {{session('success')}}. Eu logo vi que o marcador {{ }} é coisa lá do Blade Laravel, o PHP não suporta isso. Assim, eu improvisei: <?php $data = session('success'); ?> e assim o VS Code parou de reclamar do problema. Testei o código, e tudo continuava funcionando. Nos vários testes que eu fiz no Laravel, ainda sinto muita dificuldade em saber quem é variável local e quem é variável global. -
Ontem, eu tentei improvisar um código no controlador, e o VS Code disparou um monte de erro. Eu desfiz a minha besteira, mas o VS Code continuou apontando o erro. Então, eu decidi jogar todo o projeto no lixo, e começar do zero. Dessa vez, eu comecei pelo login através desse tutorial: Laravel 9 Auth Login and Registration with Username or Email (codeanddeploy.com), esse tutorial é enorme. Mas o VS Code reclamou dessa linha: <?php $data = Session::get('success'); ?> Pelo Google, eu vi a dica para instalar mais um componente: GitHub - barryvdh/laravel-ide-helper: Laravel IDE Helper, mas não consegui resolver o problema. Eu também eu vi outra dica no Google, o de desconsiderar o alerta do VS Code. Essa dica funciona, mas não vou conseguir dormir sabendo que existe um código que pode desmoronar toda a arquitetura do Laravel. Assim, a minha única saída foi usar o pouco que eu sei de inglês e pedir ajuda no portal do Laracasts Undefined type 'Session' Intelephense (1009) (laracasts.com) Acho que o melhor jeito de estudar o Laravel é valorizando as mensagens de erro. Pelo menos foi assim que eu aprendi a usar o PHP. Mas nessa nova aventura, eu finalmente consegui instalar o Bootstrap no Laravel, o tutorial não diz como fazer isso, mas usei a minha intuição bem como corrigi o código do tutorial com a ajuda das mensagens de erro da ferramenta de inspeção do navegador. Esse Bootstrap é muito bom, no começo eu não conseguia nada, mas hoje eu até decorei <table class='table table-sm table-striped'> de tanto digitar a mesma coisa.
-
Como fazer o JavaScript funcionar no Laravel ou no PHP?
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em PHP
No fórum Imasters, o Omar~ sugeriu para eu ter certeza que a variável de controle do comando for seja do tipo inteiro. A sugestão dele deu certo. Onde eu tinha function show(j), eu mudei para function show(k){ j = parseInt(k); etc Eu sempre esqueço que os números são abstrações humanas e o computador só tem dois digítos, o zero e o um. Para representar qualquer número, o algorítimo deve ser bem federal. Aqui a listagem original, agora com a sugestão do Omar~ <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbprod order by prod"); $prod=$query->fetch_all(MYSQLI_ASSOC);?> <script> function procurar(valor){ for(i=0;i<produtos.options.length;i++){ if(produtos.options[i].value==valor){ j=produtos.options[i].getAttribute('data-id');}} show(j);} function show(k){ j=parseInt(k); divshow.innerHTML=""; for(i=j;i<j+9;i++){ divshow.innerHTML+=produtos.options[i].value+"<br>"}} </script> <div><p><p> <form> <input list=produtos autofocus id=produto onchange=procurar(value) autofocus> <datalist id=produtos> <?php foreach($prod as $key=>$pr){echo "<option data-id=$key value='".$pr['prod']."'>";} ?> </datalist></form></div> <div id=divshow></div> <script>show(0)</script> -
Como eu disse, eu ainda estou estudando o Laravel. Ainda não cheguei no arquivo de Log, mas eu acredito que a rotina de autenticação vai verificar se o mesmo usuário já não está logado em outro terminal. Autenticação e validação são coisas novas para mim.
-
Eu não tenho a menor experiência com a rotina do Login, espero aprender alguma coisa com o Laravel. Mas eu lembro que trabalhei numa rede, e ele não permitia o mesmo usuário logar em dois terminais ao mesmo tempo. A minha ideia é desativar o acesso do usuário se isso acontecer, e perguntar porque ele está compartilhando o id e a senha com todo mundo no escritório.
-
Caracteres estranhos no browser
pergunta respondeu ao thiagoaf19 de Frank K Hosaka em Tutoriais & Dicas - PHP
Essa sintaxe não é PHP, Laravel Blade e nem JasperSoft. Que programa você utilizou para fazer esse código?- 2 respostas
-
Estou estudando o MySQL desde 2020, e só hoje eu tive coragem de mexer no WampServe > MySQL > my.ini e debaixo do grupo [mysqld] acrescentei lower_case_table_names=2 na esperança de criar tabelas com letras maiúsculas. Eu uso o Windows 11. O problema é na hora de reiniciar o WampServe, ele fica amarelo e não verde. Eu não sei se isso é relevante, mas estou estudando também o Laravel, e desde então o WampServ dispara um alerta "Warning: there is Wampserver path (c:/wamp64) into Windows PATH environment variable: (C:\wamp64\bin\php\php8.1.0)". Apesar do alerta, tudo funciona, o ícone está verde. Só fica amarelo, se eu mexer no my.ini. A minha grande dúvida: alguém aqui já conseguiu fazer tabelas com letra maiúscula no MySQL e Windows 11?
-
<?php $detData="yyyy"; $dtAno2 = ($detData == 'yyyy') ? " to_char( noti_dtinfr, 'YYYY' ) " : " NULL "; echo $dtAno2."<br>"; // resultado to_char(noti_dtinfr,'YYYY') $dtMes2=null;$dtDia2=null;$dtHora2=null; $dtGrpBy = $dtAno2 . ' , ' .$dtMes2 . ' , ' .$dtDia2 . ' , ' .$dtHora2 ; echo $dtGrpBy; // resultado to_char(noti_dtinfr,'YYYY'),,, to_char faz parte da gramática do PHP Oracle, e encontrei esse tópico no Google: PHP Oracle SQL Select date to_char - Stack Overflow
-
<?php $dtAno2 = date('Y'); echo $dtAno2."<br>"; // resultado 2022 $dtMes2 = date('m/Y'); echo $dtMes2."<br>"; // resultado 12/2022 $dtDia2 = date('d/m/Y'); echo $dtDia2."<br>"; // resultado 21/12/2022 $dtHora2 = date('H:i:s d/m/Y'); echo $dtHora2."<br>"; // resultado 23:20:54 21/12/2022 date_default_timezone_set('America/Sao_Paulo'); echo $dtHora2."<br>"; // resultado 23:20:54 21/12/2022 $dtGrpBy = $dtAno2 . ' , ' .$dtMes2 . ' , ' .$dtDia2 . ' , ' .$dtHora2 ; echo $dtGrpBy; // resultado 2022, 12/2022, 21/12/2022, 23:20:54 21/12/2022 Para colocar essas informações no iReport, isso eu não faço a menor ideia.
-
Pelo que vi no Google, o OCI8 é uma extensão para o PHP ver o banco de dados da Oracle. Já o NCLOB você consegue com esse comando: SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET' Fonte: PECL :: Package :: oci8 (php.net) e sql - What is the difference between CLOB and NCLOB? - Stack Overflow
-
Como fazer o JavaScript funcionar no Laravel ou no PHP?
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em PHP
Consegui resolver! Tudo indica que o comando for do JavaScript só funciona uma vez, logo eu troquei pelo comando forEach. Esse comando funciona pelo menos duas vezes. <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbprod order by prod"); $prod=$query->fetch_all(MYSQLI_ASSOC);?> <script> function procurar(valor){ for(i=0;i<produtos.options.length;i++){ if(produtos.options[i].value==valor){ j=produtos.options[i].getAttribute('data-id');}} show(j);} function show(j){ divshow.innerHTML=""; teste=[1,2,3,4,5,6,7,8,9,10] teste.forEach(function(){ divshow.innerHTML+=produtos.options[j].value+"<br>";j++})} </script> <div><p><p> <form> <input list=produtos autofocus id=produto onchange=procurar(value) autofocus> <datalist id=produtos> <?php foreach($prod as $key=>$pr){echo "<option data-id=$key value='".$pr['prod']."'>";} ?> </datalist></form></div> <div id=divshow></div> <script>show(0)</script>