
Frank K Hosaka
Membros-
Total de itens
1.623 -
Registro em
-
Última visita
Tudo que Frank K Hosaka postou
-
Como corrigir o erro "array_map(): Argument #2 ($array)"?
pergunta respondeu ao R SM de Frank K Hosaka em Tutoriais & Dicas - PHP
O Iowys tem razão, um dos vetores não tem nada. Fiz um código mais simples que chegou na mesma mensagem de erro. <?php function soma($v1,$v2){return $v1+$v2;} $v1=[1,2,3];$v2=null; var_dump ( array_map('soma',$v1,$v2) ); Mensagem: Fatal error: Uncaught TypeError: array_map(): Argument #3 must be of type array, null given in C:\wamp64\www\astudy\astudy.php on line 4 Nesse caso, use var_dump($v2) antes do código do array_map para confirmar que o Iowys tem razão. O problema é saber porque a variável array $v2 não foi definida. -
Hoje eu encontrei um tutorial sobre paginação no PHP nesse endereço: Como fazer Paginação em PHP com MySQL (devmedia.com.br) Mas na hora de testar, encontrei um monte de mensagens. O tutorial trabalha com o motor MySQL, coisa que eu não domino. Mudei tudo para o motor mysqli, fiz alguns ajustes, até ele funcionar. Eu tentei fazer paginação, mas eu fiz gambiarra, usando a variável global $_SESSION, já o código do tutorial é bem simples, e usa apenas dois links para disparar o método GET. O problema é entender a equação que tem no meio do caminho; mesmo assim, ele funciona: <?php $nivelLogin=2; $mysqli=new mysqli("localhost","root","","diario"); if($nivelLogin == 0){$busca="select * from tbprod order by prod";} else { $busca = "select * from tbprod where prod like 'm%' order by prod";} $total_reg=10; if(isset($_GET['pagina'])){$pagina=$_GET['pagina'];}else{$pagina=null;} if(!$pagina){$pc=1;}else{$pc=$pagina;} $inicio=$pc-1; $inicio=$inicio*$total_reg; $limite=$mysqli->query("$busca LIMIT $inicio,$total_reg"); $todos=$mysqli->query("$busca"); $tr=mysqli_num_rows($todos); $tp=$tr/$total_reg; while($dados=$limite->fetch_array()){ echo $dados['prod']."<br>";} $anterior=$pc-1; $proximo=$pc+1; echo "<a href=?pagina=$anterior><- Anterior</a> | "; if($pc<$tp){echo "<a href=?pagina=$proximo>Proxima -></a>";}
-
Eu estou traduzindo vários códigos PHP em Laravel. Mas tem um código que eu não lembrava como foi feito, era o plano de contas em duas colunas e ainda usando uma fonte bem pequena para caber no meio da tela. O código é uma bela gambiarra. Eu peguei a tabela plano de contas, e dividi em duas consultas. A primeira consulta só pegava as contas do ativo, a segunda consulta pegava as contas do passivo em diante. Eu juntei as duas consultas numa só tabela. Isso ficou bacana. Como vou fazer isso no Laravel, ainda eu não tenho a menor ideia. <?php $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbconta where conta<201"); $NumContasAtivo=mysqli_num_rows($query); $query2=$mysqli->query("select * from tbconta where conta>=201"); $NumContasPassivo=mysqli_num_rows($query2); $parte1=$NumContasPassivo; $parte2=$NumContasAtivo-$NumContasPassivo; echo "<div style='background:lightgray;width:130;position:relative;left:500;top:50'>"; echo "<table style='font-size:12'>"; for($i=1;$i<=$parte1;$i++){ $row=$query->fetch_assoc(); $row2=$query2->fetch_assoc(); echo "<tr><td>".$row['conta']."<td>"."Contas"."<td>" .$row2['conta']."<td>"."Contas";} for($i=1;$i<=$parte2;$i++){ $row=$query->fetch_assoc(); echo "<tr><td>".$row['conta']."<td>"."Contas";} echo "</table></div>";
-
Calcular media de checkbox's selecionados.
pergunta respondeu ao Wesley Goncalves de Frank K Hosaka em Tutoriais & Dicas - PHP
Hahaha... Eu não vi que os valores vinham do MySQL. Que mancada! Mas de todo jeito, o mais importante é o cálculo da mediana. Ele funciona se você colocar o código JavaScript sozinho, se bem que esse código é bem difícil de entender, eu não sei o que é aquele [...arr]. Você já viu um negócio desses? -
Calcular media de checkbox's selecionados.
pergunta respondeu ao Wesley Goncalves de Frank K Hosaka em Tutoriais & Dicas - PHP
Eu tentei usar a fórmula do JavaScript fundamental (ES6 Syntax): Get the median of an array of numbers - w3resource, mas não deu certo. Não sei o que eu fiz de errado: <script> function atual(){ arr=[] if(inp1.checked){arr.push(inp1.value)} if(inp2.checked){arr.push(inp2.value)} if(inp3.checked){arr.push(inp3.value)} if(inp4.checked){arr.push(inp4.value)} if(inp5.checked){arr.push(inp5.value)} const median = vr => { const mid = Math.floor(vr.length / 2), nums = [...vr].sort((a, b) => a - b); return vr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;}; console.log(median([5,6,50,1,-5])) console.log(median([1,2,3,45])) painel.innerHTML="Valores dos checkbox ativos "+arr+"<br>Mediana "+median(arr)} </script> <table> <tr><td><input id=inp1 type=checkbox value=1 name=arr[] onclick=atual()>1 <tr><td><input id=inp2 type=checkbox value=2 name=arr[] onclick=atual()>2 <tr><td><input id=inp3 type=checkbox value=3 name=arr[] onclick=atual()>3 <tr><td><input id=inp4 type=checkbox value=4 name=arr[] onclick=atual()>4 <tr><td><input id=inp5 type=checkbox value=5 name=arr[] onclick=atual()>5 </table> <div id=painel><div> No código JavaScript tem dois testes que deveriam dar 5 e 3, mas está dando 5 e 2,5. -
Depois de 12 horas de tentativa e erro, eu conseguir colocar o Eloquent dentro do Livewire do Laravel, mas ainda falta diminuir a fonte do plano de contas e dividir em duas páginas: primeiro > app > Http > Livewire > ShowHideComponent.php <?php namespace App\Http\Livewire; use Livewire\Component; use App\Models\tbconta; class ShowHideComponent extends Component { public $showDiv=false; public $contaD=null; public $contaC=null; public $contas=null; public $descricaoD=null; public $descricaoC=null; public $contaInput=null; public function render(){return view('livewire.show-hide-component');} public function mount(){$this->contas=tbconta::select('conta','descricao')->get()->toarray();} public function plano($conta){$this->contaInput=$conta;$this->showDiv=true;} public function selec($chave){ if($this->contaInput=='contaD'){ $this->contaD=$this->contas[$chave]['conta']; $this->descricaoD=$this->contas[$chave]['descricao'];} if($this->contaInput=='contaC'){ $this->contaC=$this->contas[$chave]['conta']; $this->descricaoC=$this->contas[$chave]['descricao']; } } } ------ primeiro > resources > views > livewire > show-hide-component.blade.php <div> <table> <tr><td>ContaD <input wire:click=plano('contaD') wire:model='contaD' name=contaD size=1> <td><a>{{$descricaoD}}</a> <tr><td>ContaC <input wire:click=plano('contaC') wire:model='contaC' name=contaC size=1> <td><a>{{$descricaoC}}</a> </table> @if($showDiv) <div wire:click=$toggle('showDiv')> <table> @foreach($contas as $chave => $cta) <tr><td><a wire:click=selec({{$chave}})>{{$cta['conta']}} {{$cta['descricao']}}</a> @endforeach </div> @endif </div>
-
Hoje eu criei uma classe assim: primeiro.app.Http.Livewire.ShowHideComponent.php <?php namespace App\Http\Livewire; use Livewire\Component; class ShowHideComponent extends Component { public $showDiv=false; public function plano($conta){$showDiv=true;} } A mensagem que eu recebi do Laravel é que a variável $showDiv não estava definida. Fiquei 5 horas pesquisando o Google e não achei a solução. Então, por tentativa e erro, eu mudei a variável $showDiv para $this->showDiv, e assim o programa funcionou. Ou seja, não basta definir a variável no topo da lista que as funções abaixo não vão conseguir trabalhar com ele se você não usar o token $this-> Além de aprender a usar o token $this-> eu também aprendi a fazer um modal bem simples sem o JavaScript. O JavaScript funciona em qualquer página HTML, mas no meu caso eu queria pegar o JavaScript num repositório. O Laravel tem centenas de repositórios, mas eu não consegui carregar o arquivo .js no meu HTML. Assim, eu decidi estudar o componente ShowHIdeComponent do Livewire com esse tutorial: Laravel Livewire Show and Hide Div Example (larainfo.com) Eu cai na besteira de mudar o nome da classe e do blade, e o Laravel ficou só mandando mensagens de erro. Levei mais 5 horas para consertar a besteira que eu fiz. Depois de mais 5 horas na base da tentativa e erro, consegui montar dois <input>, o primeiro recebe a Conta Devedora, e o segundo recebe a Conta Credora, que é selecionado num Plano de Contas que aparece assim que você clica no <input>. O código ficou assim: primeiro > app > Http > Controllers > aStudyController.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class aStudyController extends Controller { public function index(){return view('astudy');} } ------ primeiro > app > Http > Livewire > ShowHideComponent.php <?php namespace App\Http\Livewire; use Livewire\Component; class ShowHideComponent extends Component { public $showDiv=false; public $contaD=null; public $contaC=null; public $contaInput=null; public function render(){return view('livewire.show-hide-component');} public function plano($conta){$this->contaInput=$conta;$this->showDiv=true;} public function selec($conta){ if($this->contaInput=='contaD'){$this->contaD=$conta;} if($this->contaInput=='contaC'){$this->contaC=$conta;} } } ------ primeiro > resources > views > livewire > show-hide-component.blade.php <div> <table> <tr><td>ContaD <input wire:click=plano('contaD') wire:model='contaD' name=contaD> <tr><td>ContaC <input wire:click=plano('contaC') wire:model='contaC' name=contaC> </table> @if($showDiv) <div wire:click=$toggle('showDiv')> <table> <tr><td><a wire:click=selec(1000)>1000 Ativo</a> <tr><td><a wire:click=selec(2000)>2000 Passivo</a> <tr><td><a wire:click=selec(3000)>3000 Receita</a> <tr><td><a wire:click=selec(4000)>4000 Despesa</a> </div> @endif </div> ------ primeiro > resources > views > astudy.blade.php <form> @livewireStyles @livewireScripts <livewire:show-hide-component> <input type=submit> </form> ----- primeiro > routes > web.php <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\aStudyController; use App\Http\Controllers\diarioController; Route::get('/astudy',[aStudyController::class,'index']);
-
Não consegui carregar o JavaScript no Laravel
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em PHP
O Telegram só funciona no celular. Desde 1990 tenho uma enorme dificuldade com o celular. O Facebook, por exemplo, eu só uso no PC. -
Não consegui carregar o JavaScript no Laravel
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em PHP
Comecei a minha pesquisa do Livewire, e encontrei esses dois endereços: Actions | Laravel Livewire (laravel-livewire.com) Laravel Livewire Show and Hide Div Example (larainfo.com) Toda gramática nova dá desespero, mas consegui testar o primeiro tutorial. O Livewire segue o esquema do Laravel, ele tem um controlador que fica na pasta app.Http.Livewire e um visualizador que fica na pasta resources.views.livewire. O grande truque é que você precisa incluir o visualizador do livewire dentro de um outro visualiazador para poder ver no navegador. Ou seja, o livewire é uma espécie de sub-HTML. -
Eu encontrei no Google uma dica para instalar o NPM no Windows para ajudar o Laravel a carregar o código JavaScript no projeto, mas não deu certo. Continuando a pesquisa, encontrei esse texto: Frontend - Laravel - The PHP Framework For Web Artisans. O meu inglês não é lá grande coisa, mas o que eu consegui entender é que eu não devo mais usar o JavaScript, e estudar um pouco mais o PHP e Blade. O que eu preciso é de um modal, uma janela para eu escolher uma conta do plano e a conta escolhida vai direto na tela de lançamento. Se eu não conseguir com o PHP e o Blade, nesse caso, o texto me recomenda a estudar o Laravel Livewire. Agora eu sei porque não tem forum para o Laravel, é muito complicado.
-
A gramática para obter o número do próximo lançamento contábil no Laravel Eloquent é $lcto=tbdiario::orderBy('lcto','desc')->first( )->lcto+1 ele também aceita executar esse comando se você escrever "oderby", tudo em minúsculo. Mas o Laravel não é tão flexível. Se você escrever $lcto=tbdiario::orderby('lcto','desc')->first('lcto')+1, ele vai reclamar "Unsupported operand types: App\Models\tbdiario+int". Se você escrever $lcto=tbdiario::orderby('lcto')->last( )->lcto+1, ele vai reclamar "Call to undefined method Illuminate\Database\Eloquent\Builder::last( )". Se você escrever $lcto=tbdiario::orderby('lcto',desc)->first( )->lcto+1, ele vai reclamar "Undefined constant App\Http\Controllers\desc". E também não é possível definir o lançamento contábil como chave primária com auto incremento no MySQL, pois tem muito lançamento que precisa de mais de uma conta devedora ou mais de uma conta credora para registrar o fato gerador, do tipo a compra de uma paçoca de R$ 1,00, pagando a metade no cartão de débito, e outra metade no cartão de crédito, ele ficaria assim: lcto,contad,contac,valor,hist 7007,refeicao, ,R$1,00,paçoca 7007, ,banco,R$ 0,50,paçoca 7007, ,visa,R$ 0,50,paçoca Resumindo, o Laravel é apenas um dicionário como o PHP. Quanto mais palavras você conhecer do dicionário, maior é a possibilidade de você fazer uma boa redação. A minha esperança com o Laravel é que ele me ensine a colocar o PHP na rede. Ontem eu vi um vídeo do YouTube explicando como usar o comando "authorize" do Laravel, ele é interessante, o desenvolvedor criou uma página Web em cinco partes, o usuário que tiver a credencial de administrador pode ver todas as partes, o usuário que for apenas visitante não ver nada! Eu não preciso de um programa desse porte, o que eu preciso é saber como permitir dois usuários usarem o mesmo programa de orçamento ao mesmo tempo.
-
Como faço para somar a coluna Lucro ?
pergunta respondeu ao tiagolemos85 de Frank K Hosaka em Repositório de Scripts - PHP
Não. A soma é um agrupamento. Ou você soma tudo, select sum(lucro) as totalLucro from jogos, ou soma por partes select data,sum(lucro) as totalLucro from jogos group by data. O que você pode fazer é mostrar toda a listagem e em seguida fazer uma nova consulta para servir de totalizador. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> <?php $mysqli=new mysqli("localhost","root","","astudy"); $resultado= $mysqli->query("select * from jogos order by id desc"); if(($resultado)and($resultado->num_rows != 0)){ ?> <table class="table table-striped table-bordered table-hover"> <tr><th>Data<th>Esporte<th>Time Casa<th>Time Visitante<th>Placar<th>Steak<th>Odd<th>Lucro <?php while($row=mysqli_fetch_assoc($resultado)){ ?> <tr><td><?=date('d/m/Y',strtotime($row['data']))?><td><?=$row['esporte']?><td><?=$row['timea']?> <td><?=$row['timeb']?><td><?=$row['placar']?><td><?=$row['steak']?> <td><?=$row['odd']?><td><?=$row['lucro']; } $calculo=$mysqli->query('select sum(lucro) as lucrototal from jogos'); $consulta=$calculo->fetch_assoc(); $lucro=$consulta['lucrototal']; echo "<tr style=color:red><td><td><td><td><td><td><td>Lucro<td>$lucro";} else { echo "<div class='alert alert-danger' role='alert'>Nenhum esporte encontrado!</div>";} -
Ajuda com o COMPOSER
pergunta respondeu ao Vitor de Jesus de Frank K Hosaka em Tutoriais & Dicas - PHP
Ops, eu lembrei. A dica é você escolher um diretório onde você quer instalar o Laravel. Vamos supor que seja a pasta "C:/Usuário/Vitor". Você instala o composer nesse diretório, e com o composer você instala o projeto também nesse diretório. Se você não gostar desse diretório, você pode apagar tudo (só o projeto, é claro), vai para outro diretório, e começa tudo de novo. Eu não sei como tornar o composer disponível para todo o sistema. -
Ajuda com o COMPOSER
pergunta respondeu ao Vitor de Jesus de Frank K Hosaka em Tutoriais & Dicas - PHP
Eu usei o composer só uma vez para instalar o projeto do Laravel. Depois, nunca mais usei esse programa. -
Código php para tracert em rede
pergunta respondeu ao Everton Cardoso Deolinda de Frank K Hosaka em Tutoriais & Dicas - PHP
Pelo que eu li em Como usar o TRACERT para solucionar problemas de TCP/IP no Windows - Suporte da Microsoft, ele é um comando a ser utilizado no prompt do Windows. Tentei tracert www.google.com, e ele começou a mostrar os primeiros 30 saltos. Ainda pelo Google encontrei vpn - PHP Script to Traceroute? - Stack Overflow -
Problema ao $result_infoc->bindParam('oc',$nome);
pergunta respondeu ao Athyrson_1 de Frank K Hosaka em PHP-GTK
Tentei testar o seu código, e acredito que o "extract" está sendo usado de maneira errada. Não consegui trabalhar com o bindParam, eu mudei para bindValue. Aqui está o código que usei, procurei nomes ao invés de pedido. astudy.php <?php $conn=new PDO("mysql:host=localhost;dbname=diario","root",""); if (isset($_GET['oc_pesquisar'])) { $oc_pesquisar = $_GET['oc_pesquisar']; $query_oc = "SELECT pessoa FROM tbpessoa WHERE pessoa LIKE :oc"; $result_infoc = $conn-> prepare($query_oc); $result_infoc->bindValue('oc','%'.$oc_pesquisar.'%'); $result_infoc->execute(); while($row_infoc=$result_infoc->fetch(PDO::FETCH_BOTH)){ echo $row_infoc['pessoa']."<br>"; } echo "<button onclick=location.replace('astudy.php')>Nova Pesquisa</button>"; exit;} ?> <!DOCTYPE html><html lang="pt-br"><head><meta charset="UTF-8"> <title>Informações</title></head> <body><h1>Pesquisar nomes</h1> <form> <label>Informe: </label> <input name=oc_pesquisar placeholder="Pesquisar nome"><p> <input type="submit" value="Pesquisar"><br><br> </form></body></html> Ao invés de usar o motor PDO, eu uso o motor mysqli, ambos fazem o mesmo serviço, o problema é que o mysqli só funciona com o MySQL. <?php $mysqli=new mysqli("localhost","root","","diario"); if (isset($_GET['procurar'])) { $procurar = $_GET['procurar']; $query=$mysqli->query("select * from tbpessoa where pessoa like '%$procurar%'"); while($row=$query->fetch_assoc()){ echo $row['pessoa']."<br>"; } echo "<button onclick=location.replace('astudy.php')>Nova Pesquisa</button>"; exit;} ?> <form> Pesquisar pessoas: <p> <input name=procurar placeholder="Pesquisar nome"><p> <input type=submit value=Pesquisar> -
<?php $objBoleto = new stdClass; $objBoleto->TipoImpressao="1"; $objBoleto->Boletos=["MJN4GKK7E"]; echo json_encode($objBoleto); // resultado {"TipoImpressao":"1","Boletos":["MJN4GKK7E"]}
-
Onde colocar o código do produto no <input list>?
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em PHP
Aqui está o mesmo código, considerando que o código do produto será exibido sempre com quatro digítos (se no MySQL o código do produto for 22, o <input list> vai mostrar como [0022]: <?php $mysqli=new mysqli("localhost","root","","diario"); if(isset($_GET['escolha'])){ $produto=$_GET['escolha']; $pos1=strpos($produto,"[")+1; $codprod=substr($produto,$pos1,4); echo "$produto => código do produto $codprod"; $teste=$mysqli->query("select * from tbprod where codprod=$codprod"); echo "<p>produto: ".$teste->fetch_assoc()['prod']; echo "<p><button onclick=location.replace('astudy.php')>Procurar outro produto</button>"; exit;} ?> <form> <input list=produtos name=escolha onchange=submit()> <datalist id=produtos> <?php $query=$mysqli->query("select * from tbprod order by prod"); while($row=$query->fetch_assoc()){ $texto=$row['prod']; $codprod=$row['codprod']; $cod2=$codprod; if($codprod<10){$cod2="000".$codprod;} if($codprod>=10&&$codprod<100){$cod2="00".$codprod;} if($codprod>=100&&$codprod<1000){$cod2="0".$codprod;} $exibir=$texto." [$cod2]"; echo "<option>$exibir</option>";} ?> </datalist> </form> -
Ontem, o Iowys comentou que procurar um produto pela descrição é uma péssia ideia, pois o mundo do MySQL é uma coisa e do HTML é bem outra. O único denominador entre esses mundos é o código do produto. O Iowys está coberto de razão. Então, a pergunta mais óbvia é onde colocar o código do produto? Graças ao PHP, você pode colocar o código do produto onde você quiser. No meu caso, eu coloquei o código do produto no final da descrição do produto. A seguir eu publico o código PHP de como colocar isso na prática. Como o <input list> vai trabalhar com a descrição e o código ao mesmo tempo, isso signfica que você pode procurar o produto tanto pela descrição como pelo código. O problema é que se você colocar o código 43, o <input list> vai listar os produtos com o código 143,1143,1243,243,343. Nesse caso, seria interessante botar um zero antes do código para procurar o produto com o código 0043, mas o meu código a seguir não contempla essa solução. astudy.php <?php if(isset($_GET['escolha'])){ $produto=$_GET['escolha']; $pos1=strpos($produto,"[")+1; $pos2=strpos($produto,"]"); $tamanho=$pos2-$pos1; $codprod=substr($produto,$pos1,$tamanho); echo "$produto => código do produto $codprod"; echo "<p><button onclick=location.replace('astudy.php')>Procurar outro produto</button>"; exit; } ?> <form> <input list=produtos name=escolha onchange=submit()> <datalist id=produtos> <?php $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbprod order by prod"); while($row=$query->fetch_assoc()){ $texto=$row['prod']; $codprod=$row['codprod']; $exibir=$texto." [$codprod]"; echo "<option>$exibir</option>";} ?> </datalist> </form>
-
O problema de usar o id no <input list> é que o id aparece junto com a descrição do produto. Não é o caso do <select>, onde você tem a opção de trabalhar com o id do produto escolhido (o usuário não vê o id, mas o PHP vê). A minha primeira versão do orçamento.php é baseado no <select>, mas eu gostei demais do <input list>, o único senão é esse problema de esconder o id ou aumentar a fonte, mas ele é bom demais. Após muito pensar, não tive outra escolha senão apelar para o PHP reeditar todas as descrições da tabela de produtos, assim: <?php $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbprod"); while($row=$query->fetch_assoc()){ $texto=$row['prod']; $codprod=$row['codprod']; if(strpos($texto," ")){ echo $texto."<br>"; $novotexto=str_replace(" "," ",$texto); $query2=$mysqli->query("update tbprod set prod='$novotexto' where codprod=$codprod");}}
-
Eu tenho um orçamento que foi montado no elemento <input list>, mas o resultado foi desastre: <div id=painel></div> <input type=text id=inproduto list=produto onchange='painel.innerHTML=value' placeholder=produto autofocus> <datalist id='produto'> <option>"Como pegar o valor original?"</option> </datalist> O nome do produto é "Como pegar o valor original?", mas na hora que eu escolho o produto pelo <input list>, ele me devolve "Como pegar o valor original?" e aí o PHP reclama que não encontrou nenhum produto com essa descrição no MySQL. Eu não tenho coragem de pedir para o pessoal do cadastro de largar a mão de criar espaços inúteis dentro da descrição do produto, e também não queria trabalhar com o <select> que permite trabalhar com o código do produto sem aparecer na tela. O meu único recurso é o fórum, espero que um especialista me diga como pegar o valor original do <option> do <datalist>
-
Já faz vários meses que estou tentando "traduzir" o meu projeto Diário em PHP para o Laravel, mas eu encontrei um erro grosseiro que eu fiz num dos códigos, eu esqueci de fechar o <form>. Fiquei imaginando como é que o meu código funciona. Intrigado, eu criei essa aberração: <?php if(isset($_GET['teste'])){echo "olá mundo"; exit;} ?> <form> <table><th>Demonstração <tr><td>Vamos<td>ver<td>como<td>fica <tr><td><td><td><input name=teste> Note que aqui não tem </th></tr></td></input></form> e até </table>. Mesmo assim, o código funciona. Não sei se é o PHP é que completa o código ou se é o navegador. O mais bacana é que o blade.php do Laravel também aceita essas omissões. Nessa semana, eu descobri uma coisa bacana. Eu não queria turbinar dois <td>, assim eu decidi turbinar apenas um <tr>, assim: <tr style=font-weight:bold;color:red><td>{{$credito}}<td>Credito. Isso deu certo no Laravel, mas no PHP só dá certo para negritar as duas células, mas ele não avermelha nenhuma delas. E para a minha alegria eu consegui consertar o dropdown do Bootstrap. As opções do <a class='btn btn-primary text-white'> encostavam os títulos do menu na esquerda, eu queria um pouco mais para a direita. Assim, eu tive a ideia de criar um CSS particular assim .flutua{position:relative;left:80%}, e incorporei a palavra assim <a class='btn btn-primary text-white flutua'>, claro que aqui fica difícil saber o que é Bootstrap e o que é gambiarra, mesmo assim dá para perceber que o HTML está ficando cada vez mais esperto. Mesmo que você omita muitos fechamentos, o HTML é capaz de advinhar o que você queria dizer.
-
Upload de imagem para Google Drive através de PHP/LARAVEL
pergunta respondeu ao Luis Inacio de Frank K Hosaka em Tutoriais & Dicas - PHP
Upload File to Google Drive using PHP - CodexWorld Recentemente eu precisei renomear um monte de arquivos no OneDrive. Como ainda não sei como o PHP gerencia os arquivos fora do C:\Wamp64\www, eu apelei para o Microsoft Excel e o VBA. Pedi para o Excel buscar os novos nomes no MySQL e em seguida renomear os arquivos. Provavelmente você têm o Office 365, eu sugiro usa-lo se você já usou o VBA.- 2 respostas
-
Capturar mensagem de retorno do MySQL
pergunta respondeu ao Jordano Cherobim de Frank K Hosaka em PHP
<?php $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbdiario"); echo "Registros afetados: ".mysqli_affected_rows($mysqli); -
Eu crio uma view assim no MySQL Workbench: CREATE 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` e no final ele cria um vw_balancete e o DDL mostra isso: 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` A minha dúvida é saber se é possível ter um DDL do mesmo jeito que eu criei a view. Aproveitando o mesmo tema, é possível ver a DDL (o código da estrutura da view) no PhpMyAdmin?