-
Total de itens
1325 -
Registro em
-
Última visita
-
Dias vencidos
15
Posts postados por Omar~
-
-
E onde está a função innerHTMLtransaction?
O problema pode ser justamente nessa função.
Em outro caso falta uma tag <td> já estamos manipulando uma tabela.
Tente assim:
addTransaction(transaction) { var tr = document.createElement('tr'), td = document.createElement('td'); td.innerHTML = transaction; tr.appendChild(td); this.transacaoContainer.appendChild(tr); }
Por fim certifique-se que existe uma tag <table> com o classificador mytbody, do contrário aqui:
3 horas atrás, nelson99 disse:transacaoContainer: document.querySelector('.mytbody'),
Será uma propriedade indefinida, portanto não será um objeto válido.
-
Não entendi direito, mas se for separar cada caractere formando um array você pode está usando a função str_split:
$separa = str_split('90'); var_dump( $separa ); // array(2): ['9', '0']
Mas não sei, mas desconfio que você esteja tentando fazer algo que a função number_format já faz.
-
Rapaz!!
Espero que ajude, veja que acessei qualquer valor para criar uma mensagem de console exibindo cada qual:
var objeto = { 'Entradas': { 'Receitas Operacionais': { 0: 'Vendas', 1: 'Serviços' }, 'Receitas financeiras': { 0: 'Rendimentos' } }, 'Saidas': { 'Despesas comerciais': { 0: 'Comissões', 1: 'Combustivel', 2: 'Publicidade' } }, 'Despesas operacionais': { 0: 'Matéria Prima', 1: 'Fretes' } }; var objA = 0, objB = 0, objC = 0, subObjetoA = [], subObjetoB = [], mensagemTeste = ''; for (objA in objeto) { mensagemTeste = objA + ' = ['; subObjetoA = objeto[objA]; for (objB in subObjetoA) { subObjetoB = subObjetoA[objB]; if (typeof subObjetoB === 'object') { mensagemTeste += '\n\t' + objB + ' = ['; for (objC in subObjetoB) { mensagemTeste += '\n\t\t' + subObjetoB[objC] + ', '; } mensagemTeste += '\n\t],'; } else { mensagemTeste += '\n\t' + subObjetoB + ', '; } } mensagemTeste += '\n]'; console.log(mensagemTeste); }
Não é por nada não eim, mas se vai usar javascript para compilar html está metendo os pés pelas mão, javascript só deve ser usado no html para manipulação de conteúdo já carregado, por intermédio de uma ação executada pelo usuário. E não para o carregamento.
-
Estranho deve ser alguma configuração do apache que desconheço.
Tente então modificar a arquitetura e não usar um arquivo html e sim php. De fato fica até mais simples e prático.
<?php $dados = [ 'titlo' => 'titulo da página', 'texto' => 'um texto de teste' ]; $html = include ('estrutura.php'); echo $html;
Aí nesse estrutura.php é que você transcreve a página
<?php $renderiza = '<!DOCTYPE html>' . '<html lang="pt-BR">' . '<head>' . '<meta charset="UTF-8">' . '<title>' . $dados['titlo'] . '</title>' . '</head>' . '<body>' . '<p>' . $dados['texto'] . '</p>' . '</body>' . '</html>'; return ($renderiza);
-
Aparentemente deveria tudo funcionar como tal, tentei reproduzir o problema e a única coisa de anormal é se algum índice do array estiver vazio.
Depure os valores do array para ver:
Citar$vai_no_html = [ // Quais os dados vão ser adicionados ao html 'titulo' => ConfigPainel('site_nome'), 'url' => ConfigPainel('site_url') ]; var_dump($vai_no_html);
E veja se os índices possuem algum valor.
De qualquer forma tente não usar a função ConfigPainel e escreva qualquer coisa aí para testar
Estou disponibilizando o link para do teste que fiz para você testar aí.
https://drive.google.com/file/d/1PSd5Nr2RYh8LKleIYnQgkymppf1lctcC/view?usp=sharing
-
Bom, eu presumo que a linguagem back-end seja o PHP.
Começando eu resumir o html só para alguns campos, mas já dar para ver como a coisa vai funcionar.
Então o arquivo.html:
Spoiler<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="language" content="pt-BR"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="icon" href="{{ favicon }}"> <title>{{ title }}</title> <meta name="description" content="{{ description }}"> <link rel="stylesheet" href="{{ url }}assets/css/app_style.css"> <script type="application/javascript" src="{{ url }}assets/js/script.js"></script> <script> {{ google_analytics }} </script> <style> .card { background-color: {{ background_color1 }}; color: {{ color1 }} } </style> </head> <body> <div class="card"> <!-- A TAG <strong> foi removida no HTML 5 Os navegadores ainda a reproduzem porque ainda existem centenas de milhares de páginas que não são html 5 Mas será removida em um futuro breve. --> <span style="font-weight:bold"> {{ titulo_informacao }} </span> <p> {{ resumo }} </p> </div> </body> </html>
Então criei uma classe que irá pegar onde tem no html {{ alguma_coisa }} e substituir por dados vindos de um arrray no php:
Spoiler<?php /* Essa classe fixa o buffer do cabeçalho * Isso impedirá que o cabeçalho http seja entregue após executar os métodos daqui */ class RendeHtml { private $htmlBase; private $encontrarChave; private $substituirChave; private $htmlRenderizado; public function defineDados($arquivoHtml, $arrayDados = []) { $this->htmlBase = (string) $arquivoHtml; $this->existeHtml(); $this->encontrarChave = []; $this->substituirChave = []; foreach ($arrayDados as $chave => $valor) { $this->encontrarChave[] = '{{ ' . $chave . ' }}'; $this->substituirChave[] = $valor; } $this->substituirDados(); } public function verHtml() { return (empty($this->htmlRenderizado) ? 'Não renderizado html de saída' : $this->htmlRenderizado); } private function existeHtml() { if (!file_exists($this->htmlBase)) { die('Erro ao encontrar arquivo html para gerar renderização'); } } private function substituirDados() { ob_start(); include($this->htmlBase); $fixarCabecalho = ob_get_clean(); if (!empty($this->encontrarChave) && !empty($this->substituirChave)) { $this->htmlRenderizado = str_replace($this->encontrarChave, $this->substituirChave, $fixarCabecalho); } } }
Daí então é só criar um array onde os índices terá o mesmo nome contido no que tem no html entre as chaves {{}}, os valores que serão inseridos nada mais que os valores dos índices com o mesmo nome.
Spoiler<?php require_once (__DIR__ . DIRECTORY_SEPARATOR . 'RendeHtml.php'); $vai_no_html = [ // Quais os dados vão ser adicionados ao html 'favicon' => 'icone.ico', 'title' => 'título da página', 'description' => 'Descrição qualquer', 'url' => 'https://endereco.com/', 'google_analytics' => 'console.log(\'Um script javascript\')', 'background_color1' => '#ff0000', 'color1' => '#ffffff', 'titulo_informacao' => 'Informação de título', 'resumo' => 'Resumo qualquer' ]; $html = __DIR__ . DIRECTORY_SEPARATOR . 'arquivo.html'; // Endereço para o arquivo html $renderizar = new RendeHtml(); $renderizar->defineDados($html, $vai_no_html); echo ($renderizar->verHtml());
-
Qual a linguagem back-end? Essa informação é vital.
De qualquer forma a duas alternativas.
1 (A mais correta e sensata) Renderizar a página e entregar para o usuário tudo completo, acredito que conseguiria fazer algo para isso usando um arquivo .html e alimentando os dados através do PHP.
2 (O menos eficiente) Pré renderizar a página, pós seu carregamento redefinir todos os valores através do javascript. O problema disso é justamente você ter que renderizar um padrão e substituir tudo depois de carregado. É até simples demais porém ineficiente tanto em usabilidade quanto em desempenho.
Em 27/12/2021 at 15:25, Jack Oliveira disse:só mais uma obs: toda vez que ser inserido ou atualizado os dados no banco que as informações seja atualizada tbm
Aí você re-executa a coisa toda usando websocket
-
Desculpe mas só agora fui ver a query rsrsrsr..... Se não indicar os índices que vão ser lidos, lógico que eles não vão existir.... Então você pode repassar os valores separados por virgula.
SELECT bk_fantasia, bk_lote_del, bk_fc_ID FROM tab_for_sai WHERE bk_lote_del = 'BOM' ORDER BY bk_fantasia ASC
Na via das dúvidas se for o caso você pode pegar todos os índices da tabela. Usando um "*" você diz na instrução: Selecione tudo na tabela
SELECT * FROM tab_for_sai WHERE bk_lote_del = 'BOM' ORDER BY bk_fantasia ASC
GROUP BY serve para agrupar resultados normalmente usado em join's, daí quando há resultados duplicados semelhantes ao qual pode-se agrupar os que são iguais em um único resultado.
-
Você precisará fazer 2 tabelas ou 1 só, também precisará fazer 2 querys, ou uma só dar também.
O negócio é que vamos precisar de 2 arrays um para a categoria outro para produto.
Portanto se fazer 1 query terá que separar as categorias dos produtos.
Então fazemos uma varredura primeiro no array de categoria e dentro dessa varredura varremos também o array de produtos, o segredo é comparar a referência.
Veja como funciona a lógica:
<?php $categorias = [ 0 => ['id' => 1, 'nome' => 'novidades'], 1 => ['id' => 2, 'nome' => 'sucessos'], 2 => ['id' => 3, 'nome' => 'vips'] ]; $produtos = [ 0 => ['id' => 1, 'categoria' => 1, 'nome' => 'Produto A'], 1 => ['id' => 2, 'categoria' => 2, 'nome' => 'Produto B'], 2 => ['id' => 3, 'categoria' => 3, 'nome' => 'Produto C'], 3 => ['id' => 4, 'categoria' => 1, 'nome' => 'Produto D'], 4 => ['id' => 5, 'categoria' => 3, 'nome' => 'Produto E'] ]; foreach ($categorias as $c) { echo ("<p>Atual laço de repetição {$c['id']}: {$c['nome']}</p>"); foreach ($produtos as $p) { if ($c['id'] == $p['categoria']) { echo ("<p>Produto: {$p['nome']}/ Categoria: {$c['nome']}</p>"); } } echo ("<hr />"); }
-
Mas você está usando PDO ou msqli como extensão para conectar?
Enfim se não está usando PDO deveria está usando....
Toda vez que ver UNDEFINED INDEX saiba que é um índice de algum array sendo usado quando ele não existe.
Então podemos chegar a conclusão que o índice bk_fc_ID não existe.
Pelo contexto sabemos que deveria ser o nome de uma das colunas da tabela tab_for_sai. Como aqui ninguém sabe como é a estrutura da tabela não podemos dizer como deveria ser esse índice ou se ele mesmo existe, mas acredito que o problema é que você transcreveu usando letras maiúsculas ao invés de minusculas, no entanto você mesmo pode depurar e chegar a solução por conta própria.
Bastando apenas usar a função var_dump no resultado assim você terá como saber se existe, se está com erro, como é de fato e tudo mais, mais ou menos nesse sentido:
<?php $select = $CALL->prepare( "SELECT bk_fantasia FROM tab_for_sai WHERE bk_lote_del = 'BOM' GROUP BY bk_fantasia ORDER BY bk_fantasia" ); $select->execute(); $resultado = $select->fetchAll(PDO::FETCH_ASSOC); <?php echo "<pre>"; var_dump($resultado); // Visualizar como é de verdade os dados obtidos (Mesmo que sejam erros) echo "</pre>"; foreach ($resultado as $valor) { echo "<p>{$valor['bk_fantasia']}</p>"; echo "<p>{$valor['bk_fc_id']}</p>"; // Acredito que deveria está transcrito em letras minúsculas } /* Tudo que estiver abaixo desse loop você deixa como comentário entre as aspas while ($user - $stmta->fecth()) */
-
Eu dispenso em faze JOIN em outra tabela quando não for necessário.
Cada JOIN uma nova etapa do processamento, menos desempenho vamos ter.
Se levar-mos ao pé da letra como devemos executar alguma coisa só vamos perder em desempenho.
Por isso (DEPENDENDO DO AMBIENTE) é melhor registar numa única tabela e apenas lermos aquele ao invés "de dar banana ao macaco" e fazer voltas para uma coisa que deveria ser única.
Não que a proposta de uma tabela extra esteja errada, mas como disse depende do ambiente da aplicação e talvez um único acesso seria o bastante para sanar uma simples questão.
-
Rapaz leia esse tópico https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/
Tópico dedicado a iniciantes na conexão e manipulação do banco de dados através do PHP. É bem genérico mas é o ponteiro da bússola que aponta o norte para onde seguir.
E bem vindo ao PHP....
Antes de mais nada, conexão com um banco mesmo que parente do PHP não tem haver uma coisa com outra.
-
Veja se não existe um caractere binário invisível antes da declaração da variável. (caso tenha usando Crtl+C & Ctrl+V aqui do fórum com certeza deve ter).
Nesse caso escreva o código a mão, ou use um editor capaz de interpretar esses caracteres.
Verifique se você fechou o código anterior com um ponto-e-virgula.
unexpected T_VARIABLE
Diz que o PHP não espera aquela variável agora pois ainda não terminou de executar uma instrução anterior. Então quando ver isso, normalmente não está relacionado exatamente a instrução atual e sim a alguma coisa anterior.
-
Então seria uma cor distinta quando for P ou M ou G?
<?php function defineCor($valor) { switch (strtolower($valor)) { case 'p': $cor = 'ff0000'; break; case 'm': $cor = '359107'; break; case 'g': $cor = '3b7fe7'; break; default: $cor = '000000'; break; } return ('#' . $cor); } ?> <div style="color:<?= defineCor('M') ?>">lorem ipsum dolor sit amet</div>
Se for uma cor para cada registro, aí você tem que registrar essa cor junta a própria tabela seja lá qual for o que é para ter cor.
-
Repassei o que fiz e na lógica tudo funcionaria como previsto, então testei para realmente ver...
E não é que funcionou como esperado!
O resultado:
Em caminho de...
-
Eu não testei mas deve funcionar:
<?php function limitarPalavras($texto, $quantidade) { $textoArray = explode(' ', $texto, ($quantidade + 1)); if (count($textoArray) > $quantidade) { unset($textoArray[$quantidade]); } return (implode(' ', $textoArray) . '...'); }
Então você chama a função informando por parâmetro "$texto" o texto que é para limitar a quantidade de palavras e como segundo parâmetro "$quantidade" você informa quantas palavras quer.
Exemplo:
$palavra = "Em caminho de paca tatu caminha dentro?";
echo limitarPalavras($palavra, 3);
O que eu fiz, simplesmente quebrei o texto em um array separando cada palavra pelo espaço entre elas, mas a quantidade de índices desse array deve ser a quantidade que informamos +1 porque sempre o primeiro índice de um array é zero.
Então se a quantidade de índices gerados pelo explode for maior que a quantidade, remove-se esse índice sobrando.
Por fim com a o implode juntamos nosso array quebrado novamente em uma string.
-
11 horas atrás, Caio Vargas disse:Eu coloquei os tamanhos para serem cadastrados junto com as categorias
Que tamanhos que categoria? O que você cadastra mesmo?
11 horas atrás, Caio Vargas disse:Porém o meu cliente pediu para criar as cores
Cor do que? Para o que?
11 horas atrás, Caio Vargas disse:gostaria de saber se alguém tem algum exemplo
Ninguém vai ter se você não disser do que se trata
Explica direito e não de forma branda/leviana para que nós possamos ter pelo menos uma mínima ideia do que de fato você está tentando alcançar.
Porque o que você disse não diz coisa com coisa alguma...
-
-
Achei interessante e um desafio, mas antes de fato tentar fazer veio um problema.
Existe um limite na quantidade de caractere que um número pode chegar?
Exemplo: Se tivesse-mos 123456789, lógico que a cada numero passado é maior que o anterior, mas na condição que 123456 é maior que 789, por isso achei que não conseguiria inventar alguma coisa para sanar esse problema.
Sem botar a mão na maça primeiro eu quebraria o numero em um array, e através de um while compararia cada índice com o próximo se for maior aumentaria o valor de uma variável ou a re-escreveria com o novo número sempre comparando com o próximo até cessar o loop.
Se tudo desse certo como na teoria condiz eu estaria com o maior numero em sequencia, o problema seria o limite máximo de caractere que a a varável do resultado pode alcançar.
-
Rapaz só tem um jeito de você fazer a coisa andar.
1º - Você tem que salvar a senha do usuário durante seu cadastro usando o password_hash
2 º - Como o login é e-mail e senha você verifica somente se existe o e-mail, se existir aí você traz os dados desse e-mail, na precisão precisa da senha que está salva lá quando o usuário se cadastrou.
3º - Com essa senha obtida pelo e-mail aí você compara o valor salvo no banco de dados com a digitada usando o password_verify
E a propósito:
NUNCA/ JAMAIS/ EM HIPÓTESE ALGUMA!!! Ofusque alguma coisa! E ainda pior você fez cometeu erro gravíssimo em uma super global....
16 horas atrás, Biel. disse:@$senha = $_POST['senha'];
@$email = $_POST['email'];
Nada deve ser ofuscado e nunca super-globais devem ser acessadas diretamente.
-
@Motta Meio estrando não é?
De fato sempre quando precisei fazer algo semelhante, fazia duas querys e unificava os resultados em um único array no PHP.
Mas a questão que acho poderia existir outra forma é: Uma vez que já fiz um JOIN na tabela de usuários, poderia existir algum comando "que desconheço" para relacionar as duas colunas diferentes para um único JOIN.
-
Sim pode ser feito com um banco de dados, basta apenas que saiba registrar e ler dados.
Porém textos design das páginas e uma porção de coisas pode ser executada por arquivos apenas mudando seus parâmetros.
É muito comum na área de desenvolvimento para terceiros colocar-mos alguma coisa de mudança de configuração, como alterar dados de acesso a banco de dados o já mencionado acima e uma infinidade de coisas de forma a facilitar o manuseio da aplicação pelo cliente, pois normalmente ele não sabe programar por isso ele nos contratou, e apenas com alguns cliques ele possa gerenciar toda a aplicação.
Mas não acho sensato um amador se entregar nisso, pois requer muita atenção pois um simples erro pode custar muito dinheiro para o cliente que vai com certeza processar-lo pela perda (recentemente um conhecido meu foi preso por causa disso mesmo).
No entanto é bom que comece a fazer coisas básicas pessoalmente para ir se acostumando.
Vamos então supor que tenha-mos textos para serem exibidos que podem ser editados.
Irei usar um arquivo XML pois pode guardar muita informação e na teoria funciona como banco de dados (MAS NUNCA USE UM ARQUIVO DESSES PARA GUARDAR DADOS DE ACESSO!!!)
<?xml version="1.0" encoding="UTF-8"?> <textos> <texto_a>Algo escrito para ser mostrado</texto_a> <texto_b>Outra coisa</texto_b> </textos>
Aí caso queiramos mostrar alguma coisa desse arquivo:
<?php $lerXML = simplexml_load_file('arquivo.xml'); echo ($lerXML->texto_a);
Mas de nada adianta se não pudermos editar não é mesmo?
Então criamos um arquivo que será responsável por re-escrita do arquivo original.
<?php $escrita = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" . "<textos>" . "<texto_a>{$texto_a}</texto_a>" . "<texto_b>{$texto_b}</texto_b>" . "</textos>"; return $escrita;
Nada mais que um arquivo php que tem escrito os padrões do arquivo original que vamos alterar
Então para alterar-mos o arquivo bastamos criar as variáveis usadas no arquivo acima. Incluir ele e re-escrever outro XML com o que vamos modificar salvando em cima do outro assim substituindo o anterior.
<?php $texto_a = 'Estou mudando o texto A do arquivo XML'; $texto_b = 'Estou mudando o texto B do arquivo XML'; $saida = include ('escrita.php'); // O arquivo php de re-escrita $salvar = 'arquivo.xml'; // O arquivo XML que é para salvar $escrever = fopen($salvar, 'w') or die('Não é possível gerar o arquivo.' . '<br />Verifique as permissões de acesso as pastas e arquivos no servidor'); fwrite($escrever, $saida); fclose($escrever);
Se então acessarmos aquele arquivo que fizemos a leitura do XML vemos que o texto foi alterado.
Porém se não queira-mos mudar tudo fazemos a leitura do arquivo XML comparamos as informações diferentes e setamos valores iguais ou diferentes nas variáveis conforme o que de fato foi alterado.
No mais é o básico se formulários HTML e receber essas informações e processar-las no back-end para ser usadas.
-
Estou com a tarefa de elaborar uma leitura no banco de dados e não estou conseguindo achar uma solução para a instrução de leitura.
Basicamente tenho uma tabela que de produtos, nela tenho uma coluna para registrar o vendedor e outra para registrar o comprador assim associar esses valores com a tabela de usuários.
Digamos assim:
SELECT produto.id, produto.vendedor, produto.comprador, usuarios.id, usuarios.nome FROM produto INNER JOIN usuarios ON produto.vendedor = usuarios.id
Com isso tenho a informação do vendedor na tabela de usuários, mas como faria para obter os dados do comprador também?
Uma forma seria executar dois joins na tabela de usuários porém acho que assim me parece mais gabiarra do que o jeito mais coeso de se fazer (e na verdade foi gabiarra sim porque não sei como proceder)
Tipo assim:
SELECT produto.id, produto.vendedor, produto.comprador, a.id AS a_id, a.nome AS a_nome, b.id AS b_id, b.nome AS b_nome FROM produto INNER JOIN usuarios AS a ON produto.vendedor = a.id INNER JOIN usuarios AS b ON produto.comprador = b.id
Tem outro jeito? Como?
-
Bem simples de resolver se você tem mesmo acesso aos arquivos hospedados.
A mensagem é clara e diz que o usuário sql palms não tem permissão de acesso devido a senha incorreta.
- Veja alguma documentação desse prestashop e ver em qual arquivo armazena os dados de acesso ao banco de dados.
- Acesse os arquivos na hospedagem e faça o download desse arquivo.
- Modifique os dados manualmente nesse arquivo, conforme os novos dados de acesso ao sql.
- Envie esse arquivo modificado para a hospedagem substituindo o que lá está com dados inválidos.
mysqli_connect não conecta
em PHP
Postado
Não mecho com mysql, tente verificar se é erro mesmo:
var_dump( mysqli_errno() );
Lógico que isso vem depois da conexão ser lançada e todos erros na aplicação devem ser habilitados e nenhum tipo de ofuscação deve ser usado exemplo:
@$alguma_coisa = .....