Ir para conteúdo
Fórum Script Brasil

Frank K Hosaka

Membros
  • Total de itens

    1.623
  • Registro em

  • Última visita

Tudo que Frank K Hosaka postou

  1. A minha sugestão é começar com algo mais simples assim: drop table if exists alunos; create table alunos (id int, nome varchar(45), PRIMARY KEY (id)); drop table if exists professores; create table professores (id int, nome varchar(45), primary key (id)); drop table if exists salas; create table salas (id int, numero_sala int, horario datetime, idprofessor int, idaluno int, primary key(id));
  2. <?php class tentativa { public $db; public function __construct(){ $this->db=new PDO("mysql:host=localhost;dbname=astudy","root","");} public function teste($indice){ $smt=$this->db->prepare('select nome from usuarios,rede where usuarios.id=rede.id_patrocinador and id_patrocinador=:teste'); $smt->bindParam(':teste',$indice); $smt->execute(); return $smt->fetchObject();}} $tentativa=new tentativa(); $patrocinador=$tentativa->teste(1); ?> <div style="width:25%;margin:0 auto"> <table> <tr><td>Patrocinador</td><td><?=$patrocinador->nome?> </table> </div>
  3. get_field( ) é um recurso que não é nativo no PHP. Ele precisa do composer para ser instalado e tem algumas regras que tem que ser seguidas para aproveita-lo: ACF | Displaying values in your theme (advancedcustomfields.com)
  4. Hahahahaha... esses aplausos não são merecidos! Eu simplesmente não consegui montar a consulta no MySQL, eu não tive outra solução senão apelar para o PHP, é uma solução de desespero. Quem merece o aplauso é quem conseguir montar uma procedure no MySQL que consiga relacionar os três últimos registros de cada categoria. Isso eu não consegui! Eu agradeço os aplausos, mas eles não são merecidos.
  5. Para exibir o nome de quem está logado, a página deveria ter mais ou menos os seguintes comandos: qualquerpagina.php <?php session_start(); echo "usuário logado: ";$_SESSION['usuario'];
  6. Vamos supor que na rotina do login.php tenhamos definido $_SESSION['usuario']="Frank". Vamos supor que depois da autenticação, o fluxo do programa siga para home.php. Para colocar o nome do usuário no topo da página, eu faço assim: <?php session_start(); echo "Usuário logado: ".$_SESSION['usuario'];
  7. Esse tipo de consulta é bem difícil de fazer no MySQL. Mas, graças a Deus, nós temos o PHP! <?php $mysqli=new mysqli("localhost","root","","astudy"); for($categoria=1;$categoria<=5;$categoria++){ $query=$mysqli->query("select id,pessoa,categoria from tbpessoa where categoria=$categoria order by id desc limit 3"); while($pessoa=$query->fetch_assoc()){ echo $pessoa['categoria']." => ".$pessoa['pessoa']."<br>";}}
  8. Recomendo fazer a consulta diretamente no ambiente MySQL e quando você obter o resultado que você espera, aí sim você vai para o PHP. Use recursos mais básicos, depois é que você se preocupa com as aparências. <form> <input name=pedido placeholder="Número do pedido" required><p> <input type=submit> </form> <?php if (!isset($_GET['pedido'])) {exit;} $pesquisa=$_GET['pedido']; $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbpedido where ped=$pesquisa"); if($query->num_rows==0) {echo "Nenhum pedido encontrado";exit;} $rows=$query->fetch_all(MYSQLI_ASSOC); var_dump($rows);
  9. Ao invés da gravar o resultado de uma consulta em uma tabela, eu só fiz uma saída na tela dizendo quem está consultando, o que ele está consultado e o resultado que ele obteve. No meu exemplo, defini a variável $_SESSION['usuario'] no código. O correto é ele ter sido definido na rotina de login. Eu espero que o código lhe ajude a ter uma ideia de como gravar o nome do usuário na sua tabela de controle. <?php session_start(); $_SESSION['usuario']="Frank"; ?> <form method=post> Nome do produto <input name=termo><br> <input type=submit> </form> <?php if(!isset($_POST['termo'])){exit;} class conexao { public static $instance; public static function getinstance(){ self::$instance=new PDO("mysql:host=localhost;dbname=astudy","root",""); return self::$instance; } } $termo=$_POST['termo']; $conexao = conexao::getInstance(); $sql = 'select * from tbprod where prod like :prod'; $stm = $conexao->prepare($sql); $stm->bindValue(':prod', '%'.$termo.'%'); $stm->execute(); $produtos = $stm->fetchAll(PDO::FETCH_OBJ); echo "O usuário ".$_SESSION['usuario']." pesquisou o produto $termo e o resultado foi esse: <br>"; var_dump($produtos);
  10. No meio de vários POST, eu uso apenas um. Escolho qualquer um, se ele não estiver setado, eu simplesmente paro a execução do programa, assim: <form method=post> <input name=produto><br> <input name=qtd><br> <input name=valor><br> <input type=submit> </form> <?php if(!isset($_POST['produto'])){exit;} $produto=$_POST['produto']; $qtd=$_POST['qtd']; $valor=$_POST['valor']; ?> <table> <th>Produto<th>Qtd<th>valor <tr><td><?=$produto?><td><?=$qtd?><td><?=$valor?> </table> O comando foreach não é necessário nesse contexto.
  11. Valeu, bem que eu vi que o pdf do php era bem diferente. Pelo vídeo, deu para notar que ele é muito familiar ao Laravel, onde você precisa preparar várias pastas até atingir o objetivo.
  12. A minha sugestão é tirar a tabela do MS Acess e colocar no MySQL e depois pedir para o MS Access criar uma tabela vinculada. As pessoas podem usar os formulários, as consultas, os relatórios vinculados à antiga tabela, mas ninguém precisa saber que os dados estão sendo armazenados no MySQL.
  13. <?php $inpc='{"source":"\"IBGE - Índice Nacional de Preços ao Consumidor\"","title":"Variação mensal durante o Plano Real","valuesMap":{"Brasil":{"julho 1994":"7,75","agosto 1994":"1,85","setembro 1994":"1,40","outubro 1994":"2,82","novembro 1994":"2,96","dezembro 1994":"1,70","janeiro 1995":"1,44","fevereiro 1995":"1,01","março 1995":"1,62","abril 1995":"2,49","maio 1995":"2,10","junho 1995":"2,18","julho 1995":"2,46","agosto 1995":"1,02","setembro 1995":"1,17","outubro 1995":"1,40","novembro 1995":"1,51","dezembro 1995":"1,65","janeiro 1996":"1,46","fevereiro 1996":"0,71","março 1996":"0,29","abril 1996":"0,93","maio 1996":"1,28","junho 1996":"1,33","julho 1996":"1,20","agosto 1996":"0,50","setembro 1996":"0,02","outubro 1996":"0,38","novembro 1996":"0,34","dezembro 1996":"0,33","janeiro 1997":"0,81","fevereiro 1997":"0,45","março 1997":"0,68","abril 1997":"0,60","maio 1997":"0,11","junho 1997":"0,35","julho 1997":"0,18","agosto 1997":"-0,03","setembro 1997":"0,10","outubro 1997":"0,29","novembro 1997":"0,15","dezembro 1997":"0,57","janeiro 1998":"0,85","fevereiro 1998":"0,54","março 1998":"0,49","abril 1998":"0,45","maio 1998":"0,72","junho 1998":"0,15","julho 1998":"-0,28","agosto 1998":"-0,49","setembro 1998":"-0,31","outubro 1998":"0,11","novembro 1998":"-0,18","dezembro 1998":"0,42","janeiro 1999":"0,65","fevereiro 1999":"1,29","março 1999":"1,28","abril 1999":"0,47","maio 1999":"0,05","junho 1999":"0,07","julho 1999":"0,74","agosto 1999":"0,55","setembro 1999":"0,39","outubro 1999":"0,96","novembro 1999":"0,94","dezembro 1999":"0,74","janeiro 2000":"0,61","fevereiro 2000":"0,05","março 2000":"0,13","abril 2000":"0,09","maio 2000":"-0,05","junho 2000":"0,30","julho 2000":"1,39","agosto 2000":"1,21","setembro 2000":"0,43","outubro 2000":"0,16","novembro 2000":"0,29","dezembro 2000":"0,55","janeiro 2001":"0,77","fevereiro 2001":"0,49","março 2001":"0,48","abril 2001":"0,84","maio 2001":"0,57","junho 2001":"0,60","julho 2001":"1,11","agosto 2001":"0,79","setembro 2001":"0,44","outubro 2001":"0,94","novembro 2001":"1,29","dezembro 2001":"0,74","janeiro 2002":"1,07","fevereiro 2002":"0,31","março 2002":"0,62","abril 2002":"0,68","maio 2002":"0,09","junho 2002":"0,61","julho 2002":"1,15","agosto 2002":"0,86","setembro 2002":"0,83","outubro 2002":"1,57","novembro 2002":"3,39","dezembro 2002":"2,70","janeiro 2003":"2,47","fevereiro 2003":"1,46","março 2003":"1,37","abril 2003":"1,38","maio 2003":"0,99","junho 2003":"-0,06","julho 2003":"0,04","agosto 2003":"0,18","setembro 2003":"0,82","outubro 2003":"0,39","novembro 2003":"0,37","dezembro 2003":"0,54","janeiro 2004":"0,83","fevereiro 2004":"0,39","março 2004":"0,57","abril 2004":"0,41","maio 2004":"0,40","junho 2004":"0,50","julho 2004":"0,73","agosto 2004":"0,50","setembro 2004":"0,17","outubro 2004":"0,17","novembro 2004":"0,44","dezembro 2004":"0,86","janeiro 2005":"0,57","fevereiro 2005":"0,44","março 2005":"0,73","abril 2005":"0,91","maio 2005":"0,70","junho 2005":"-0,11","julho 2005":"0,03","agosto 2005":"0,00","setembro 2005":"0,15","outubro 2005":"0,58","novembro 2005":"0,54","dezembro 2005":"0,40","janeiro 2006":"0,38","fevereiro 2006":"0,23","março 2006":"0,27","abril 2006":"0,12","maio 2006":"0,13","junho 2006":"-0,07","julho 2006":"0,11","agosto 2006":"-0,02","setembro 2006":"0,16","outubro 2006":"0,43","novembro 2006":"0,42","dezembro 2006":"0,62","janeiro 2007":"0,49","fevereiro 2007":"0,42","março 2007":"0,44","abril 2007":"0,26","maio 2007":"0,26","junho 2007":"0,31","julho 2007":"0,32","agosto 2007":"0,59","setembro 2007":"0,25","outubro 2007":"0,30","novembro 2007":"0,43","dezembro 2007":"0,97","janeiro 2008":"0,69","fevereiro 2008":"0,48","março 2008":"0,51","abril 2008":"0,64","maio 2008":"0,96","junho 2008":"0,91","julho 2008":"0,58","agosto 2008":"0,21","setembro 2008":"0,15","outubro 2008":"0,50","novembro 2008":"0,38","dezembro 2008":"0,29","janeiro 2009":"0,64","fevereiro 2009":"0,31","março 2009":"0,20","abril 2009":"0,55","maio 2009":"0,60","junho 2009":"0,42","julho 2009":"0,23","agosto 2009":"0,08","setembro 2009":"0,16","outubro 2009":"0,24","novembro 2009":"0,37","dezembro 2009":"0,24","janeiro 2010":"0,88","fevereiro 2010":"0,70","março 2010":"0,71","abril 2010":"0,73","maio 2010":"0,43","junho 2010":"-0,11","julho 2010":"-0,07","agosto 2010":"-0,07","setembro 2010":"0,54","outubro 2010":"0,92","novembro 2010":"1,03","dezembro 2010":"0,60","janeiro 2011":"0,94","fevereiro 2011":"0,54","março 2011":"0,66","abril 2011":"0,72","maio 2011":"0,57","junho 2011":"0,22","julho 2011":"0,00","agosto 2011":"0,42","setembro 2011":"0,45","outubro 2011":"0,32","novembro 2011":"0,57","dezembro 2011":"0,51","janeiro 2012":"0,51","fevereiro 2012":"0,39","março 2012":"0,18","abril 2012":"0,64","maio 2012":"0,55","junho 2012":"0,26","julho 2012":"0,43","agosto 2012":"0,45","setembro 2012":"0,63","outubro 2012":"0,71","novembro 2012":"0,54","dezembro 2012":"0,74","janeiro 2013":"0,92","fevereiro 2013":"0,52","março 2013":"0,60","abril 2013":"0,59","maio 2013":"0,35","junho 2013":"0,28","julho 2013":"-0,13","agosto 2013":"0,16","setembro 2013":"0,27","outubro 2013":"0,61","novembro 2013":"0,54","dezembro 2013":"0,72","janeiro 2014":"0,63","fevereiro 2014":"0,64","março 2014":"0,82","abril 2014":"0,78","maio 2014":"0,60","junho 2014":"0,26","julho 2014":"0,13","agosto 2014":"0,18","setembro 2014":"0,49","outubro 2014":"0,38","novembro 2014":"0,53","dezembro 2014":"0,62","janeiro 2015":"1,48","fevereiro 2015":"1,16","março 2015":"1,51","abril 2015":"0,71","maio 2015":"0,99","junho 2015":"0,77","julho 2015":"0,58","agosto 2015":"0,25","setembro 2015":"0,51","outubro 2015":"0,77","novembro 2015":"1,11","dezembro 2015":"0,90","janeiro 2016":"1,51","fevereiro 2016":"0,95","março 2016":"0,44","abril 2016":"0,64","maio 2016":"0,98","junho 2016":"0,47","julho 2016":"0,64","agosto 2016":"0,31","setembro 2016":"0,08","outubro 2016":"0,17","novembro 2016":"0,07","dezembro 2016":"0,14","janeiro 2017":"0,42","fevereiro 2017":"0,24","março 2017":"0,32","abril 2017":"0,08","maio 2017":"0,36","junho 2017":"-0,30","julho 2017":"0,17","agosto 2017":"-0,03","setembro 2017":"-0,02","outubro 2017":"0,37","novembro 2017":"0,18","dezembro 2017":"0,26","janeiro 2018":"0,23","fevereiro 2018":"0,18","março 2018":"0,07","abril 2018":"0,21","maio 2018":"0,43","junho 2018":"1,43","julho 2018":"0,25","agosto 2018":"0,00","setembro 2018":"0,30","outubro 2018":"0,40","novembro 2018":"-0,25","dezembro 2018":"0,14","janeiro 2019":"0,36","fevereiro 2019":"0,54","março 2019":"0,77","abril 2019":"0,60","maio 2019":"0,15","junho 2019":"0,01","julho 2019":"0,10","agosto 2019":"0,12","setembro 2019":"-0,05","outubro 2019":"0,04","novembro 2019":"0,54","dezembro 2019":"1,22","janeiro 2020":"0,19","fevereiro 2020":"0,17","março 2020":"0,18","abril 2020":"-0,23","maio 2020":"-0,25","junho 2020":"0,30","julho 2020":"0,44","agosto 2020":"0,36","setembro 2020":"0,87","outubro 2020":"0,89","novembro 2020":"0,95","dezembro 2020":"1,46","janeiro 2021":"0,27","fevereiro 2021":"0,82","março 2021":"0,86","abril 2021":"0,38","maio 2021":"0,96","junho 2021":"0,60","julho 2021":"1,02","agosto 2021":"0,88","setembro 2021":"1,20","outubro 2021":"1,16","novembro 2021":"0,84","dezembro 2021":"0,73","janeiro 2022":"0,67","fevereiro 2022":"1,00","março 2022":"1,71","abril 2022":"1,04","maio 2022":"0,45","junho 2022":"0,62","julho 2022":"-0,60","agosto 2022":"-0,31","setembro 2022":"-0,32","outubro 2022":"0,47","novembro 2022":"0,38","dezembro 2022":"0,69","janeiro 2023":"0,46"}}}'; // fonte: https://www.ibge.gov.br/estatisticas/economicas/precos-e-custos/9258-indice-nacional-de-precos-ao-consumidor.html?=&t=series-historicas $jinpc=json_decode($inpc); $dados=$jinpc->valuesMap->Brasil; echo "<table><th>Período<th>Indice<th>Acumulado"; $periodo="1994-07-01"; $acumulado=1; foreach($dados as $key => $value){ $fperiodo=date('m/Y',strtotime($periodo)); $fvalue=str_replace(",",".",$value); $acumulado=$acumulado+$fvalue/100*$acumulado; $facumulado=str_replace(".",",",$acumulado); echo "<tr><td>$fperiodo<td>$value<td>$facumulado"; $periodo=date('Y-m-d',strtotime("+1 month",strtotime($periodo))); } echo "</table>";
  14. Eu tentei testar apenas a função, mas eu não consegui. Recomendo fazer o mesmo. Teste apenas a função, sem amarrar a nenhum banco de dados, mais ou menos assim: <?php $data = array( array('', 1800, 5), array('', 1810, 7), array('', 1820, 10), array('', 1830, 13), array('', 1840, 17), array('', 1850, 23), array('', 1860, 31), array('', 1870, 39), array('', 1880, 50), array('', 1890, 63), array('', 1900, 76), array('', 1910, 92), array('', 1920, 106), array('', 1930, 123), array('', 1940, 132), array('', 1950, 151), array('', 1960, 179), array('', 1970, 203), array('', 1980, 227), array('', 1990, 249), array('', 2000, 281), ); require("phplot.php"); $plot = new PHPlot(800, 600); $plot->SetImageBorderType('plain'); $plot->SetPlotType('lines'); $plot->SetDataType('data-data'); $plot->SetDataValues($data); # Main plot title: $plot->SetTitle('US Population, in millions'); # Make sure Y axis starts at 0: $plot->SetPlotAreaWorld(NULL, 0, NULL, NULL); $plot->DrawGraph();
  15. Acho que o maior problema aqui no fórum (pelo menos é o meu caso) é como usar o fpdf.php. Eu baixei aqui no meu micro, mas na hora de usar eu recebi várias mensagens de erro que não soube como resolver. Você conhece um tutorial para um leigo como eu fazer o pdf funcionar no PHP? De preferência em português.
  16. Eu nunca ouvi falar. Eu tenho PDFTK Buider, ele consegue agrupar vários arquivos pdf (não criptografado) num só arquivo pdf. Às vezes eu recebo um comprovante em imagem. Para converter em PDF, eu uso a função imprimir do Windows e peço para salvar como PDF. Já o Word e o Excel tem funções próprias para converter as páginas ou as planilhas selecionadas em PDF. Mas colocar tipos de arquivos diferentes dentro de um tipo de arquivo, eu acho pouco provável.
  17. Dá para resolver no php! Exemplo: <?php $teste=base64_decode("dXNlcm5hbWU6cGFzc3dvcmQ="); echo $teste; // username:password
  18. Legal, o problema não é o MySQL, o problema é o base64_decode. Encontrei isso no Google: How to Base64 Encode/Decode a Value in Node.js (futurestud.io) - verifique se você consegue decodificar usando essa dica. Decoding a base64-encoded string is also possible using the global Buffer class. Again, create a buffer instance using the Buffer.from method. Pass it your base64-encoded string as the first argument and the base64 encoding as the second argument. Make sure to pass the correct encoding to initialize the buffer correctly. You can then translate the encoding to a UTF8 representation. Here’s a code snippet translating a base64-encoded string to UTF8: // using the base64 encoded string from above const plain = Buffer.from('dXNlcm5hbWU6cGFzc3dvcmQ=', 'base64').toString('utf8') // 'username:password' That‘s it! Eu acredito que o código só funciona no JavaScript. O texto é só isso, o problema é encontrar esse tal de Buffer class que ele menciona. Veja se você consegue achar essa classe no seu código.
  19. Supondo que o nome da tabela é tbutilizadores, supondo que existe um campo chamado nome_utilizador, eu faria a consulta assim: select * from tbutilizadores order by nome_utilizador;
  20. Todo santo dia eu digito 1 kilobytes de informação e salvo no 0nedrive com o nome de dump. Hoje ele tem 2.870 kilobytes, ele tem toda a história da minha conta no banco, no que eu gastei e como consegui o dinheiro, e ele calcula quanto que foi o meu lucro (ou prejuízo) até o momento que atualizei os registros, desde 2020, quando apareceu o famoso covid-19. O problema é que eu preciso de um programa chamado MySQL Workbench para ver o conteúdo desse arquivo. Não é um programa fácil de usar. Assim, eu uso o PHP para fazer os meus registros. No PHP eu faço formulários tão feios quanto o meu nariz, mas pelo menos são bem mais fáceis para editar, acrescentar ou deletar informações. Voltando em 1999, eu lembro que comprei um Palm, e lá havia um aplicativo chamado Bible, mas o arquivo principal tinha apenas 1.000 kilobytes, são dezenas de crônicas que foram escritos supostamente com a inspiração do Arquiteto. Ou seja, eu já escrevi três bíblias, desde 2020, isso sem dúvida foi com a ajuda do Arquiteto. Por outro lado, eu peguei o navegador e pedi para salvar (somente) a página HTML da primeira página do jornal O Estado de S Paulo, e deu 3.283 kilobytes. Comparando os números, eu posso concluir que todo o meu banco de dados cabe numa página HTML! Pelo menos os três últimos anos. Aliás, eu estava pensando em fazer uma consulta no PHP assim "$query=$mysqli->query(select * from *)", e depois pediria para ele salvar (somente) a página HTML, ao invés do sql. Já imaginou que bacana seria se o HTML 6.0 eliminasse o MySQL, o Visual Basic, o PHP, o MariaDB, o Python, o Oracle, o JavaScript, o Laravel, o Office e por aí vai? Claro que o navegador iria precisar de mais um painel para atualizar, acrescentar e deletar <td> no documento.
  21. Para fazer esse trabalho, eu peguei um chart da cdn. A tabela contém 6 pontos, mas o chart só plotou cinco pontos. Talvez o chart da Apex seja melhor, mas o meu trabalho é só mostrar o algorítimo: MySQL CREATE TABLE `tbparcelas` ( `id` int NOT NULL AUTO_INCREMENT, `vencimento` date DEFAULT NULL, `valor` float DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; INSERT INTO `tbparcelas` VALUES (1,'2023-02-01',10),(2,'2023-02-02',20),(3,'2023-02-03',5),(4,'2023-02-04',15),(5,'2023-02-05',7),(6,'2023-03-06',15.5); astudy.php <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous"> <body style="width:50%;margin:0 auto"><div style=height:5%></div> <title>Dashboard - Minhas Economias</title> Sugestão: 01/02/2023 12/02/2023 <form class="search-form d-flex align-items-center" method="POST" action=""> <div class="row mb-3"><div class="col-sm-10"> <input type=date name=data_inicio class=form-control required> </div></div> <div class="row mb-3"><div class="col-sm-10"> <input type=date name=data_final class=form-control required> </div></div> <div class="row mb-3"><div class="col-sm-10"> <input type=submit> </div></div> </form> <div><canvas id=chart></canvas></div> <?php if (!isset($_POST['data_inicio'])) {exit;} $data_inicio = $_POST['data_inicio']; $data_final = $_POST['data_final']; $mysqli=new mysqli("localhost","root","","astudy"); $query = $mysqli->query("select * from tbparcelas where vencimento between '$data_inicio' and '$data_final'"); $nomes = []; $valores = []; While ($row=$query->fetch_assoc()){ array_push($nomes,date('d/m',strtotime($row['vencimento']))); array_push($valores,$row['valor']);} $jnomes=json_encode($nomes); $jvalor=json_encode($valores); ?> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> el = document.getElementById('chart'); new Chart(el,{ type: 'line', data: { labels: <?=$jnomes?>, datasets: [{ label: "Minhas Economias", data: <?=$jvalor?>, borderWidth: 1 }]}, options: {scales: {y: {beginAtZero: false}}}}) </script>
  22. Quando comecei a estudar o PHP em 2020, eu apanhei muito com o HTML e o JavaScript. Só hoje é que eu consegui filtrar os empregados por setor, mas ao invés de passar o serviço para o PHP pelo famoso método GET ou POST, eu pedi para o JavaScript resolver o problema. O truque é que eu pedi para o PHP esconder tudo dentro do HTML e o JavaScript trabalha com esse material para mostrar ao usuário o que ele quer. Falando é fácil, mas eu gastei três anos da minha vida. CREATE TABLE `tbempregados` ( `id` int NOT NULL AUTO_INCREMENT, `empregado` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL, `idsetor` int DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; INSERT INTO `tbempregados` VALUES (1,'jose',1),(2,'maria',1),(3,'joao',1),(4,'jair',2),(5,'inácio',2),(6,'dilma',2); CREATE TABLE `tbsetores` ( `id` int NOT NULL AUTO_INCREMENT, `sigla` varchar(3) COLLATE utf8mb4_general_ci DEFAULT NULL, `setor` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci INSERT INTO `tbsetores` VALUES (1,'exp','expedicao'),(2,'emb','embalagem'); astudy.php <body style="width:50%;margin:0 auto"><div style=height:5%></div> <script> function lista(selecao){ empregados=JSON.parse(todos.innerHTML) filtro=empregados.filter(empregados=>empregados.setor==selecao) parte1="<select><option>Selecione o empregado</option>" parte2="" for(i=0;i<filtro.length;i++){ filtro2=filtro[i] for(key in filtro2){ if(key=="empregado"){ parte2+="<option>"+filtro2[key]+"</option>"}}} divemp.innerHTML=parte1+parte2+"</select>" } </script> <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbsetores,tbempregados where tbsetores.id=tbempregados.idsetor"); $rows=$query->fetch_all(MYSQLI_ASSOC); $jrows=json_encode($rows); echo "<div id=todos style=display:none>$jrows</div>"; $query=$mysqli->query("select * from tbsetores"); $setores=$query->fetch_all(MYSQLI_ASSOC); ?> <select onchange=lista(value)> <option>Selecione o setor</option> <?php foreach($setores as $setor):?> <option value=<?=$setor['setor']?>><?=$setor['setor']." - ".$setor['sigla']?> <?php endforeach; ?> </select> <p> <div id=divemp> <select> <option>Selecione o empregado</option> </select> </div>
  23. Para fazer esse trabalho, usei essas tabelas no MySQL CREATE TABLE `tbempregados` ( `id` int NOT NULL AUTO_INCREMENT, `empregado` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL, `idsetor` int DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; INSERT INTO `tbempregados` VALUES (1,'jose',1),(2,'maria',1),(3,'joao',1),(4,'jair',2),(5,'inácio',2),(6,'dilma',2); CREATE TABLE `tbsetores` ( `id` int NOT NULL AUTO_INCREMENT, `sigla` varchar(3) COLLATE utf8mb4_general_ci DEFAULT NULL, `setor` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci INSERT INTO `tbsetores` VALUES (1,'exp','expedicao'),(2,'emb','embalagem'); e esse código PHP <body style="width:50%;margin:0 auto"><div style=height:5%></div> <script> function lista(selecao){ empregados=JSON.parse(todos.innerHTML) filtro=empregados.filter(empregados=>empregados.setor==selecao) parte1="<select><option>Selecione o empregado</option>" parte2="" for(i=0;i<filtro.length;i++){ filtro2=filtro[i] for(key in filtro2){ if(key=="empregado"){ parte2+="<option>"+filtro2[key]+"</option>"}}} divemp.innerHTML=parte1+parte2+"</select>" } </script> <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbsetores,tbempregados where tbsetores.id=tbempregados.idsetor"); $rows=$query->fetch_all(MYSQLI_ASSOC); $jrows=json_encode($rows); echo "<div id=todos style=display:none>$jrows</div>"; $query=$mysqli->query("select * from tbsetores"); $setores=$query->fetch_all(MYSQLI_ASSOC); ?> <select onchange=lista(value)> <option>Selecione o setor</option> <?php foreach($setores as $setor):?> <option value=<?=$setor['setor']?>><?=$setor['setor']." - ".$setor['sigla']?> <?php endforeach; ?> </select> <p> <div id=divemp> <select> <option>Selecione o empregado</option> </select> </div>
  24. Eu estava estudando um caso aqui do fórum (Error Warning: Undefined array key "name" in - Tutoriais & Dicas - PHP - Fórum Script Brasil) e comecei a estudá-lo com a ajuda do var_dump. Nesse tópico tem várias tecnologias do PHP que eu nunca usei como array_map e preg_match. O único que eu imaginava que sabia usar era o var_dump, mas hoje eu aprendi a não confiar nele. Coloquei um var_dump antes da função array_map, e var_dump dentro da função, e os resultados foram totalmente diferentes, e assim cheguei à conclusão de que não sou capaz de resolver o problema que o autor da dúvida levantou lá em 2021 e que não foi respondida até 2023. <form method=post enctype="multipart/form-data"> <input type=file name=foto> <input type=submit> </form> <?php //include '../menu.php'; if(!isset($_FILES['foto'])){exit;} $foto = $_FILES['foto'];var_dump($foto); // aqui o var_dump mostra um array array_map(function ($foto) { var_dump($foto); // aqui o var_dump mostra 5 strings! $a = 0; if($foto !== null) { preg_match("/\.(png|jpg|jpeg){1}$/i", $foto, $ext); // << A linha onde acontece o erro Warning: Undefined array key "name" >> $connection="teste";//include'../conexao/conexao.php'; if ($ext == true) { $nome_foto = md5(uniqid(time())) . "." . $ext[1]; $caminho_foto = "../documentos/" . $nome_foto; move_uploaded_file($foto["tmp_name"], $caminho_foto); $query = "INSERT INTO foto (nome_foto, id_carro_foto) values ('$nome_foto',1)"; $query_run = mysqli_query($connection,$query);}} $a++;}, $foto); ?>
  25. Isso é bem estranho mesmo! Eu tirei o atributo name do $foto['name'], e o VS Code parou de reclamar. Se o código funciona, eu não sei. Mas eu gostei da função preg_match, ele é muito bacana, mas eu testei assim preg_match("/(png|jpg|jpeg)/",$foto,$ext), hoje eu aprendi que essa função joga o resultado da consulta no terceiro parâmetro, ou seja, a variável $ext. Não testei o resto do código, mas eu estou abismado. <form method=post enctype="multipart/form-data"> <input type=file name=foto> <input type=submit> </form> <?php //include '../menu.php'; if(!isset($_FILES['foto'])){exit;} $foto = $_FILES['foto'];var_dump($foto); // aqui o var_dump mostra um array array_map(function ($foto) { var_dump($foto); // aqui o var_dump mostra 5 strings! $a = 0; if($foto !== null) { preg_match("/\.(png|jpg|jpeg){1}$/i", $foto, $ext); // << A linha onde acontece o erro Warning: Undefined array key "name" >> $connection="teste";//include'../conexao/conexao.php'; if ($ext == true) { $nome_foto = md5(uniqid(time())) . "." . $ext[1]; $caminho_foto = "../documentos/" . $nome_foto; move_uploaded_file($foto["tmp_name"], $caminho_foto); $query = "INSERT INTO foto (nome_foto, id_carro_foto) values ('$nome_foto',1)"; $query_run = mysqli_query($connection,$query); } } $a++; }, $foto); ?>
×
×
  • Criar Novo...