Ir para conteúdo

POWERED BY:

Omar~

Members
  • Total de itens

    1339
  • Registro em

  • Última visita

  • Dias vencidos

    15

Omar~ venceu o dia em Maio 27 2018

Teve o conteúdo mais curtido

Reputação

87 Bom

Sobre Omar~

  • Classificação
    Knowledge is everything
  • Data de Nascimento 04/20/1984

Informações Pessoais

  • Sexo
    Masculino

Últimos Visitantes

16754 visualizações
  1. Omar~

    Consulta sem duplicação

    Não entendi o objetivo, afinal os resultados duplicados segundo a query apresentada estão duplicados no banco de dados. Tente usar JOIN na query e monte-a mais conivente com o objetivo, como acredito eu que em ambas tabelas possuem dados duplicados o operador ON na query pode isolar aqueles que possuem colunas com valor igual. Sem ter mais informações considere algumas alternativas Usar a função nativa do php array_filter Criar novo array organizando e definindo esse array como necessário usando os dados obtidos da query. Evitar uso da função while quando não se está usando dados que podem ter inicio ou fim, pois dependendo da situação pode sobrecarregar o servidor (máquina) caso os dados podem ser inesperados, além de danos ao hardware em sobrecarga de tarefa em loops infinitos. Você pode testar durante o processo de produção e até pode identificar problemas apenas usando a função: echo "<pre>"; // a tag pre aqui serve apenas para exibir a orientação de código var_dump($banner); Forneça mais informações, de preferência a estrutura das tabelas "não precisa dos registros" apenas para fins de verificar como montar a query da forma mais coesa.
  2. Omar~

    Modelagem para questionário

    Depende do cenário a ser empregado, como vai ser executado: 1 - Questionários podem ser criados e editados? 2 - Perguntas podem ser criadas, editadas ou removidas do questionário? 3 - Mais de uma pessoa pode responder ao mesmo questionário? Supondo que sim no básico dessas três questões, sem levar em conta de como deve funcionar o carregamento dos dados, como será o funcionamento do software.... De qualquer forma eu optaria por usar tabelas distintas para cada armazenamento. Fica até mais simples gerenciar, evita confusão em manutenções se as tabelas apenas tem o que é necessário possuir, é a mesma lógica de um código orientado onde os métodos apenas fazem o que tem de fazer. Veja como pensei na arquitetura: DROP TABLE IF EXISTS `questionario`; DROP TABLE IF EXISTS `pergunta`; DROP TABLE IF EXISTS `resposta`; CREATE TABLE `questionario` ( `q_id` int(9) NOT NULL AUTO_INCREMENT, `q_title` varchar(100) NOT NULL DEFAULT '' COMMENT 'Titulo do questionario', `q_publicado` date COMMENT 'Data em que foi publicado', PRIMARY KEY (`q_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE `pergunta` ( `p_id` int(9) NOT NULL AUTO_INCREMENT, `p_pergunta` varchar(200) NOT NULL DEFAULT '' COMMENT 'Texto da pergunta', `p_questionario` int(9) NOT NULL DEFAULT '0' COMMENT 'A qual questionario pertence', PRIMARY KEY (`p_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE `resposta` ( `r_id` int(9) NOT NULL AUTO_INCREMENT, `r_resposta` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'Resposta da pergunta', `r_respondida` date COMMENT 'Data em que foi respondida', `r_pergunta` int(9) NOT NULL DEFAULT '0' COMMENT 'A qual pergunta pertence', `r_pessoa` int(9) NOT NULL DEFAULT '0' COMMENT 'Pessoa que respondeu', PRIMARY KEY (`r_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; Fazendo a(s) pergunta(s) Perceba que assim as perguntas podem ser carregadas sem as respostas evitando assim registros de perguntas duplicados no banco de dados para cada resposta que foi inserida. Imaginando assim não terei a mesma pergunta repetida em cada resposta para ela. Vendo a(s) resposta(s) do questionário Entretanto também pode-se armazenar a respostas se foi ou não respondida, exemplo se não houve dados para inserir na coluna r_resposta pode-se adicionar a base da tabela uma nova coluna para essa função -- na tabela resposta `q_respondida` enum('s', 'n') NOT NULL DEFAULT 'n' NULL COMMENT 's = foi respondida, n = nao foi respondida', Particularmente não vejo necessidade de registro para sim ou não, uma vez como mencionei é que se não tem registro do id da pergunta nas respostas para tal é porque não respondeu. Mantenha atenção na tabela de resposta, através dela você chega as perguntas, pelas perguntas ao formulário e vice-versa conforme for a necessidade. E mesmo que não haja necessidade de múltiplas pessoas responder, essa arquitetura acredito ser mais coesa.... se não há resposta o formulário não foi respondido. Por fim não se esqueça de um bom tratamento dos dados a serem inseridos na coluna r_resposta por ser um tipo text; códigos podem ser inseridos no banco de dados, códigos de quebra de estrutura ou executáveis ao serem carregados em uma instrução. #EDIT# Realmente para fins de agrupamento uma nova tabela seria necessária para registrar a data, porém pensando na ergonomia de dados possuir outra tabela nessa finalidade geraria muito mais armazenamento a longo prazo. Então apenas registre uma vez a data de uma resposta, assim não precisa armazenar novamente a mesma coisa; essa servirá para determinar quando foi respondido. - Se respondeu pergunta A registre a data, se respondeu pergunta B não precisa registrar a data novamente. Pode até optar em usar um varchar ao invés de date, assim pode-se manter a coluna vazia para as demais resposta economizando no armazenamento.
  3. Omar~

    Converter jpg para webp

    É um formato que particularmente detesto, mas em fim tentei algumas coisas aqui e a perda da qualidade da imagem ao recriar ela no servidor considerei ruim, pelo menos a meus olhos a perda de qualidade foi expressiva. Não sei se é meu servidor ou o php que não manipula bem esse formato. Então deixei a cargo do usuário decodificar o binário da imagem e apenas mandar esse código ao invés de fazer um upload. Mesmo assim não consegui recriar a imagem apenas usar o código para reescrever. Como usei script's meus tive de criar um exemplo https://drive.google.com/file/d/1Xyv05MLGNjEhojukh4tAzXuYY6L3B1b3/view?usp=sharing Ações: 1 Usuário - Selecionar uma imagem qualquer 2 Usuário - Codificar a imagem 3 Usuário - Pré visualizar essa imagem 4 Usuário - Adicionar todo código de informação da imagem 5 Usuário - Enviar os dados dessa imagem (não faz upload) 6 Servidor - Isolar o binário da imagem 7 Servidor - Reescrever uma imagem idêntica a selecionada pelo usuário na máquina dele
  4. Omar~

    Simulador Wamp

    Sim já sabia que certamente não funcionaria somente adicionando isso no código, por isso disse: Tudo é uma arquitetura depende de outros aspectos do código. Apenas apresentei a base ao qual o restante do código deve ser apoiado em cima. Lembrei que tinha um repositório com um esquema. Comecei a escrever e até hoje não dei continuidade https://github.com/Spell-Master/wesite_pessoal
  5. Omar~

    Variável get com url amigável

    Vai depender de como a reescrita do htaccess está formulada. Mas se fosse você optaria pelo mais fácil Existem funções nativas do php para tratar strings digamos: dominio.com.br/busca/?campo=assunto <?php $url = [ 0 => 'busca', 1 => '?campo=assunto' ]; $exemploA = substr($url[1], 1); var_dump( $exemploA ); // campo=assunto $exemploB = explode('?', $url[1]); var_dump( $exemploB[1] ); // campo=assunto E por aí vai basta apenas manipular a string do índice no array onde estão os dados
  6. Omar~

    Orientação - Jav + MySql

    De fato a instalação está com problemas, ou mesmo foi incompleta por motivos variados. Onde o my.ini está depende do sistema operacional ou local onde os demais arquivos do mysql estão.... O my.ini não se configura levianamente pois ele diz os limites de dados que o sql vai trabalhar, diretórios, arquivos etc, então configurar ele sem precisão pode complicar mais ainda. Já reiniciar não funcionar é porque não há um comando para o sistema operacional iniciar o mysql quando ativo, sendo sempre necessário iniciar. Aconselho usar o Xampp independente do seu sistema operacional, pois o software fornece o mysql dentre outros como o apache, ftp que são de grande uso de um desenvolvedor. Se seu sistema operacional for o windows veja esse vídeo onde é mostrado como instalar os recursos e serviços, sendo esses os serviços de iniciação automática um problema no windows, mas no video é mostrado o que fazer para que eles funcionem.
  7. Omar~

    Simulador Wamp

    Meio esquisito essa lógica aí... mas em fim... Primeiro é o seguinte, seu servidor está bem relaxado deixando que erros de código sejam ignorados, o que é muito perigoso E seu localhost no caso o wampp ele está mais rigoroso enquanto a permitir erros, até arisco dizer que os erros estão omitidos caso você seria informado dos erros e o código seria interrompido  Veja: $permissao = [ 'principal', 'contribua', 'quem-somos', 'politica-de-privacidade', 'termos-de-uso', 'evento', 'busca', 'galeria', 'galerias', 'clickbanner', 'noticia', 'noticias', 'contato', 'video' ]; function UrlIndex() { $filter = filter_input(INPUT_GET, 'pg', FILTER_DEFAULT); $setUrl = empty($filter) ? 'principal' : $filter; $explode = explode('/', $setUrl); $arr = array_filter($explode); return ($arr); } $url = UrlIndex(); $page = 'erro.php'; foreach ($permissao as $value) { if ($url[0] == $value) { $page = (file_exists($value . '.php') ? $value : '404') . '.php'; break; } } var_dump($page); Ao caso das variáveis, não as use! Você já vai possuir um array com esses dados caso necessite, mas sempre verifique se o valor existe antes de usar if (isset($url[3])) { // somente se obtiver a url dominio.com.br/A/B/C/D } No mais requer analise do htaccess para saber exatamente como a manipulação de dominio.com.br?pg=pagina/variavel
  8. Omar~

    Não consigo carregar imagem do captcha no meu formulário

    Veja se seu php está habilitado essas funções: imagejpeg e imagettftext Preparei um exemplo didático com arquivos aqui: https://drive.google.com/file/d/1dcqxJvZltxsxjLzBycCEKnr33S-IDUlG/view?usp=sharing
  9. Sugiro também sempre assegurar que o está manipulando seja o que espera, então a melhor forma é converter para o formato por vias das dúvidas, e sempre checar antes de prosseguir com o código $_REQUEST['campo_form'] = 01234567; var_dump($_REQUEST['campo_form']); // int $_REQUEST['campo_form'] = '01234567'; var_dump($_REQUEST['campo_form']); // str $_REQUEST['campo_form'] = (int) '01234567'; // string para integer var_dump($_REQUEST['campo_form']); // int $_REQUEST['campo_form'] = (string) 01234567; // integer para string var_dump($_REQUEST['campo_form']); // str Pelo que entendi a busca é pelo valor específico então eu não usaria o operador like, a não ser que quisesse todos registros começando ou terminando com o desejado. De qualquer forma executei a query aqui em pdo e o resultado foi alcançado $selecinar = $conexao->prepare("SELECT * FROM tabela WHERE coluna = :buscar"); $selecinar->execute([':buscar' => '12340000']); $resultado = $selecinar->fetchAll(PDO::FETCH_ASSOC); var_dump($resultado); Mas quando tentei buscar todos registros que tinham o zero no início ou no fim eu não consegui, confesso que faltou tentar mais. Então de improviso busquei todos registors e usei o php para isolar todos índices que eu desejo em uma nova array exemplo: /* * função que verifica se o caractere existe no texto * $caractere: qual string verficar * $texto: em qual texto verificar */ function noInicioFim($caractere, $texto) { if ($caractere == substr($texto, 0, 1) || $caractere == substr($texto, -1)) { return (true); } else { return (false); } } $registros_do_banco_de_dados = [ // simulando todos registros da tabela ['id' => 0, 'campo_str' => '01234567'], ['id' => 1, 'campo_str' => '12345670'], ['id' => 2, 'campo_str' => '12345678'], ['id' => 3, 'campo_str' => '12340000'], ['id' => 4, 'campo_str' => '11111111'], ['id' => 5, 'campo_str' => '22222222'], ['id' => 6, 'campo_str' => '33333333'], ['id' => 7, 'campo_str' => '44444444'], ['id' => 8, 'campo_str' => '55555555'], ['id' => 9, 'campo_str' => '00000000'], ['id' => 10, 'campo_str' => '10000009'] ]; $string_de_busca = '0'; // qual caractere será a chave de busca $indices_encontrados_com_zero = []; // novo array só com os índices encontrados foreach ($registros_do_banco_de_dados as $valor) { if (noInicioFim($string_de_busca, $valor['campo_str'])) { array_push($indices_encontrados_com_zero, ['id' => $valor['id'], 'campo_str' => $valor['campo_str']]); } } Não é a melhor alternativa dependendo do cenário que a aplicação deva funcionar.
  10. De fato se enviar algo o formulário é reiniciado para evitar problemas graves e deixe assim, mesmo que algum safado possa editar javascript para burlar isso a grande maioria não sabe e nem acidentalmente perturbaria o servidor. Mas se ao sair do navegador tudo é limpo é configuração dele ou está navegando anônimo ambos casos a aplicação web não pode fazer nada. Porém não fechar o navegador as sair de sua "janela" ou trocar de aba... Me parece ser algo restrito a sistema operacional ou mesmo software de navegação, até mesmo algum comando do aparelho para que limpe Nesse caso pode usar a função setInterval para que de tempo em tempo obtenha os valores dos input's no formulário e preencha os campos se houver dados registrados em variáveis Caso posso escrever e mostrar aqui um código javascript pra essa finalidade, mas você consegue pois é algo extremamente simples. Deixo observações....: Ainda não pode intervir no auto completar do navegador, não poderá dar valor a input se algum software do usuário negar essa ação, e o pior de tudo isso seria algo bem grotesco além que requereria processos que comprometeria a performasse de sua aplicação, sem mencionar que é desnecessário pois pessoalmente não vejo beneficio a não ser que eu esteja enganado e não entendi o motivo. Então não enviou o formulário e usou a função setInterval para manipular e os dados se perdem, nesse caso desconheço qualquer coisa do javascript para afim. Pois com certeza quem limpa o formulário é o usuário involuntariamente por algum software que esteja usando.
  11. Omar~

    Java - Ajuda para Instalar o Jasper Reports no Eclipse

    Eu encontrei isso depois de algumas pesquisas: https://stackoverflow.com/questions/78003228/any-fork-of-previous-jasper-studio-or-eclipse-plugin-source-code Então você pode instalar o addon manualmente fora da IDE eclipse/software funcionando mover cada arquivo para seu devido diretório na IDE "estranho chamar o eclipse de IDE rsrsrsr ^.^" Provavelmente vai precisar usar alguma versão antiga do eclipse, o que na minha opinião não compensa pela quantidade de itens códigos descontinuados. Experimentou o software Jaspersoft community edition? Pelo que li é a única alternativa viável. Bom.... não uso o eclipse e o pouco que tive contato com ele foi a anos.... anos.... e mais e mais anos. Mas qualquer ferramenta de desenvolvimento que usar desatualizado, pode levar a erros que compromete o estabilidade e funcionamento do software que está escrevendo, isso quando o torna tão defeituoso que simplesmente a coisa nunca vai funcionar. E é isso, se tentar enfiar o jasper studio na IDE você pode encontrar os arquivos para afim somente compatível com uma versão antiga do eclipse, ou sei lá alguém resolveu isso, compartilhou e apenas eu não encontrei. Mas se eu estivesse na sua situação procuraria usar outro recurso, uma vez que qualquer arquivo antigo jasper terá de obter de terceiros e vai lá saber quais problemas gravíssimos pode enfrentar ao usar arquivos de código suspeito, porém você pode revisar isso
  12. Omar~

    Java - Ajuda para Instalar o Jasper Reports no Eclipse

    Problema similar ao seu já me fora perguntado, como uso a IDE netbeans a anos. Enfim esse tal jasper tbm sumiu das aplicações de todas IDE, pelo que entendi o Jasper passou a ter o código fechado. Meu amigo que teve esse problema seu, teve de usar uma versão antiga da IDE e conseguiu sei lá onde o Jasper Reports. Por fim acabou abandonando a plataforma. Tente isso: https://community.jaspersoft.com/download-jaspersoft/community-edition/
  13. Omar~

    mostrar quanto tempo foi postado um conteudo

    Para isso acredito ser necessário alguma função que calcule as diferenças de tempo de forma apresentar somente x tempo em questão. Deixo aqui algo que possa usar para aprendizado, nunca necessitei fazer algo assim, mas conheço essa classe nativa do php que reproduz um resultado similar <?php $antes = new DateTime( '2001-01-01 00:01:01' ); $agora = new DateTime( date('Y-m-d H:i:s') ); $intervalo = $agora->diff($antes); echo '<pre>'; var_dump("\nTempo passado desde antes até agora:\n Anos > {$intervalo->y} Meses > {$intervalo->m} Dias > {$intervalo->d} Horas > {$intervalo->h} Minutos > {$intervalo->i} Segundos > {$intervalo->s}"); Espero que ajude
  14. Omar~

    PHP - Tecla de Atalhos para salvar

    Ações do usuário são feitas pelo lado dele exemplo usando o javascript.. Ações do php é realizado no lado do servidor. O php não consegue manipular o usuário nem o usuário pode manipular O php apenas entrega renderizado ao usuário toda parte gráfica processado no servidor e não interage com ele 2 métodos a mesma coisa Usuário diz oi > javascript leva pro servidor essa mensagem > servidor pensa e diz olá > Usuário deve recarregar o conteúdo para saber qual foi a mensagem Usuário diz oi > javascript leva pro servidor essa mensagem > servidor pensa e diz olá > javascript retorna com a mensagem para o usuário..
  15. Omar~

    PHP - Atualizar INPUT com função moeda

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.