Ir para conteúdo

Matheus Tavares

Moderadores
  • Total de itens

    1728
  • Registro em

  • Última visita

  • Dias vencidos

    32

Matheus Tavares venceu o dia em Junho 30

Teve o conteúdo mais curtido

Reputação

167 Muito Bom

Sobre Matheus Tavares

  • Classificação
    0100110101010100
  • Data de Nascimento Agosto 26

Informações Pessoais

  • Sexo
    Masculino

Contato

  • Site Pessoal
    http://www.matheustavares.com.br

Últimos Visitantes

4807384 visualizações
  1. Matheus Tavares

    [Resolvido] Estrutura de um projeto de Marketing MultiNível com php e mysql

    Olá @cpdrenato, seja bem-vindo! Você precisa: 1 - Salvar os arquivos exatamente como nomeados no post (inclusive a estrutura de diretórios). 2 - Rodar no PHP 7 pra cima. Para ver a versão do seu php e outras informações, você pode criar um arquivo com esse conteúdo: "<?php phpinfo();". 3 - Configurar seu banco de dados (conexão e estrutura de tabelas, conforme exemplificado no post). Depois de fazer isso, se ainda não tiver rodando, poste exatamente os erros que aparecem pra você.
  2. Matheus Tavares

    Página HTML e CSS ( Botões)

    Olá Joice, seja bem-vinda. Poste seus códigos para que possamos ajudar. Se você tem muita urgência e pretende pagar pelo serviço, estamos na área errada. Se quiser eu movo pra você, para o tópico chamar mais atenção do pessoal.
  3. Matheus Tavares

    Disparar e-mail automaticamente para o cliente com o navegador fechado

    Olá! Você está procurando por Cron Jobs. https://pt.stackoverflow.com/questions/225600/o-que-são-cron-jobs-e-como-usa-los-com-php http://blog.thiagobelem.net/o-que-sao-e-como-usar-as-cron-jobs
  4. Matheus Tavares

    Dúvida no uso do AND

    Pode sim. Não há limites de operadores. Esse trecho está mesmo correto? Não seria "status"? Talvez você esteja tendo problemas aqui por causa da especificidade na hora. Hora inicio provavelmente signifique algo como '16:00:00'. Lembre-se da presença dos minutos e dos segundos. Como você está comparando igualdades, pode ser que o banco não esteja conseguindo encontrar o que você quer. Sugestão, caso seja o caso: // $hora_min = 16:00:00 $hora_max = 16:59:59 dia = '$dia' AND ( hora_inicio BETWEEN '$hora_min' AND '$hora_max' )
  5. Matheus Tavares

    [Resolvido] getElementById retornando null

    Hehe, todos passamos por isso
  6. Matheus Tavares

    [Resolvido] getElementById retornando null

    Você está executando o JS antes de a div existir no DOM. Tente assim: <body onload="fazAlgumaCoisaComADiv();"> ou coloque seu JS imediatamente antes do fechamento do body (sim, no final do arquivo). Outras sugestões: https://stackoverflow.com/questions/9899372/pure-javascript-equivalent-of-jquerys-ready-how-to-call-a-function-when-t
  7. Matheus Tavares

    [Resolvido] Unknown column 'link_record' in 'where clause'

    Estranho... vamos tentar o seguinte: Após a segunda linha (onde você escreve a consulta), insira: echo $query_Recordset2; Ao rodar o código a consulta será impressa na tela e assim você saberá exatamente o que está sendo enviado ao banco. Execute o que foi impresso diretamente no seu gerenciador de banco de dados (adminer, phpmyadmin, workbench, etc...) e nos diga o que ele retornou. Poste também sua tabela e como a consulta acima foi impressa.
  8. Matheus Tavares

    Como alterar a cor do button utilizando solid (CSS)

    Olá @petrochinski, seja bem-vindo! Pq background-color espera apenas um valor e "green solid" não é um valor válido. Tente apenas assim: background-color: green;
  9. Matheus Tavares

    Separar resultados com base de outra tabela

    Olá @Omar~, tranquilo? Muita gente nessa situação faz uma consulta de "pages" para cada "sector", o que é ineficiente. Você fez certinho sim, com duas consultas e dois foreach (afinal, são dois conjuntos de dados). Não há nenhuma gambiarra aí não. Faço apenas uma ressalva: Esse método result() será chamado múltiplas vezes. Não sei o que ele faz (se ele apenas recupera o resultado, ou se ele executa a consulta e depois o recupera), mas para deixar mais eficiente você poderia deixar ele fora do loop, assim: $pages_result = $selectB->result(); foreach ($selectA->result() as $sector) { echo '<br>-Setor : ' . $sector->sector_title . '<br>'; foreach ($pages_result as $pages) { Ao menos que result() seja um método que utilize yield (generators) ou ponteiros internamente (como o Phalcon)... daí isso não faria diferença. EDIT: Eu acabei ignorando o JOIN do banco, pois eu sei que você o conhece e deve ter considerado usar. É uma boa opção para economizar uma consulta, mas como você deve ter percebido não seria uma forma natural de exibir os dados para o seu caso e você acabaria não fugindo dos dois foreach. Dependendo do caso (volume de dados, quantidade de colunas, etc) pode valer a pena, mas tomar esse caminho como primeira opção seria meramente uma "otimização precipitada", e isso é nocivo na construção de software. Além disso a diferença de performance deve ser muito pouco expressiva. Outro ponto importante é que esses dados são previsivelmente cacheáveis, então essa consulta pode ser feita apenas 1 vez a cada X tempo se você inserir uma camada de cache entre o banco e seu app, o que acaba tornando qualquer otimização desnecessária. Exemplos: APC, Memcached, Dynamodb...
  10. Matheus Tavares

    Reorganizar array com filhos e pais

    Olá! Não entendi uma coisa... na sua foto você tem um item nível 5 e dois níveis 4, daí você fez a flechinha apontando o 5 para um dos 4 (um nó-filho, no caso). Como você sabe qual dos dois 4 é o pai do 5? É só seguir a ordem mesmo? Tirando esse conflito, o resto é relativamente fácil: você faz um loop ao redor desses itens, extraindo todos do níveis da vez e injetando em um novo array. Assim: 1 - Volta nos níveis 1: pega todos os níveis 1, remove do array (para acelerar as próximas buscas) e insere na raíz. 2 - Volta nos níveis 2: pega todos os níveis 2, remove do array (para acelerar as próximas buscas) e insere em seu respectivo pai (só precisa determinar qual é o pai, se tiver mais de um nesse nível). Exemplo: <?php $array = [ [ 'level' => 6, 'nome' => 'sexto' ], [ 'level' => 3, 'nome' => 'terceiro2' ], [ 'level' => 3, 'nome' => 'terceiro1' ], [ 'level' => 4, 'nome' => 'quarto' ], [ 'level' => 10, 'nome' => 'decimo' ], [ 'level' => 1, 'nome' => 'primeiro' ], [ 'level' => 2, 'nome' => 'segundo' ], [ 'level' => 5, 'nome' => 'quinto' ], [ 'level' => 8, 'nome' => 'oitavo' ], [ 'level' => 9, 'nome' => 'nono3' ], [ 'level' => 9, 'nome' => 'nono2' ], [ 'level' => 9, 'nome' => 'nono1' ], [ 'level' => 7, 'nome' => 'setimo2' ], [ 'level' => 7, 'nome' => 'setimo1' ], ]; function extraiNivel( &$array, $nivel ) { $return = []; foreach ( $array as $i => $folha ) if ( $folha[ 'level' ] === $nivel ) { $return[] = $folha; unset( $array[ $i ] ); } return $return; } echo "Array inicial:\n"; print_r( $array ); echo "Extraídos level 3 (agora você os colocaria na posição correta do array):\n"; print_r( extraiNivel( $array, 3 ) ); echo "Extraídos level 9 (agora você os colocaria na posição correta do array):\n"; print_r( extraiNivel( $array, 9 ) ); echo "Array final (falta extrair e processar os demais...):\n"; print_r( $array ); Resultado: Sacou? Fiz a extração do 3 e do 9 manualmente para exemplificar, mas a ideia seria um loop em todos os níveis. O processamento e injeção no novo array fica por sua conta. Dá pra otimizar um pouco mais a função, mas dessa forma ela está poupando bastante memória, que eu creio que seja o mais importante nesse problema. A questão é que dessa forma você perde um pouco o conceito de ordem, uma vez que você agrupa os itens por nível... nesse caso você teria que fazer um loop um pouquinho mais complexo (e menos eficiente), mas esse código já é um pontapé inicial. Outro caminho é utilizar as funções nativas do PHP. Exemplos úteis para você seriam: array_column, array_combine, array_walk, etc... Bom.. dito isso, complemento: lidar com arrays não é a forma correta para solucionar esse problema. Existem estruturas de dados mais apropriadas. Veja esse material: https://forum.imasters.com.br/topic/562468-resolvido-estrutura-de-um-projeto-de-marketing-multinível-com-php-e-mysql/
  11. Matheus Tavares

    Verificar se um registro já existe

    Bem como imaginei... a definição das suas chaves UNIQUE estão incorretas. Você está definindo apenas uma chave dupla, dessa forma: UNIQUE KEY `username` (`username`,`email`) Com isso você está dizendo ao banco que você não deseja registros com o mesmo username e e-mail simultaneamente. Para funcionar da forma que você quer, você precisa definir duas chaves UNIQUE separadas, uma para o username e outra para o e-mail. Assim: CREATE TABLE `cadastro` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `sobrenome` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `username` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `senha` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `telefone` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `nivel` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'usuario', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`) ) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  12. Matheus Tavares

    Verificar se um registro já existe

    Olá, seja bem-vindo. Independente do seu código PHP, se as chaves estão definidas corretamente você não deveria conseguir cadastrar registros duplicados, mas o mais correto seria você fazer essa validação também na aplicação antes de inserir o registro, pois assim você consegue avisar o usuário sobre a duplicidade dos dados. Em outras palavras, você deveria antes fazer um SELECT com WHERE email = 'email@email.com', por exemplo. Apenas após um retorno vazio desse select você executa o INSERT. Exporte sua tabela e poste aqui para vermos como suas chaves UNIQUE estão definidas.
  13. Matheus Tavares

    Erro na exibição do valor

    Olá, seja bem-vindo! Ambas as operações podem sim dar valores inteiros. Exemplo: 21,2 * 10 = 212. Não existe parte fracionária nesse exemplo. Claro, que se a quantidade fosse, por ex, 11, o resultado seria 233,2, que é um caso ligeiramente "diferente" do anterior. Exatamente após as linhas que você postou, coloque isso e poste o resultado aqui para analisarmos melhor: var_dump( $qtdd, $v_valor, $v_peso ); Edit: caso o problema esteja apenas na exibição do número, você pode usar number_format, assim: <?php $qtdd = 10; echo number_format( $qtdd * 21.2, 2, ',', '' );// Resultado: 212,00
  14. Matheus Tavares

    Verificar se a data de um determinado campo é menor que a data atual 3 meses

    Ah sim, falha minha... dessa forma é bem mais simples. Seria assim: WHERE ultimo_laudo < '2018-08-03' Ou, caso você não deseje pré-calcular a data: WHERE ultimo_laudo < CURDATE() - INTERVAL 90 DAY
  15. Matheus Tavares

    Verificar se a data de um determinado campo é menor que a data atual 3 meses

    Olá Rafael, tudo bem? Sua ideia foi boa, mas você não está mantendo uma unidade para se comunicar com o banco (no caso, dias). O que eu quero dizer é que ultimo_laudo é um date (Y-m-d) provavelmente, daí você chama o CURRENT_DATE() que também vai retornar um date, e depois você coloca o -90 solto. A falha está nessa imprecisão. Você poderia fazer assim (é apenas uma das várias formas de se fazer isso, pois existem muitas funções relacionadas a datas no Mysql): WHERE ultimo_laudo BETWEEN CURDATE() - INTERVAL 90 DAY AND CURDATE() Veja: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html Mas eu particularmente prefiro sempre manter o máximo de lógica e processamento dentro da aplicação, nesse caso mandando diretamente a data calculada para dentro da consulta. Exemplo: WHERE ultimo_laudo BETWEEN '2018-08-03' AND '2018-11-01' Você não concorda que fica mais legível? Não sei qual sua linguagem de programação, mas vou te dar um exemplo para fazer isso no PHP: <?php $sql = 'SELECT BLA BLA BLA';// Início da instrução SQL, apenas para fins didáticos $sql .= sprintf( " WHERE ultimo_laudo BETWEEN '%s' AND '%s'", ( new DateTime( '-90 days' ) )->format( 'Y-m-d' ), ( new DateTime( 'today' ) )->format( 'Y-m-d' ) ); echo $sql; // Retorno: SELECT BLA BLA BLA WHERE ultimo_laudo BETWEEN '2018-08-03' AND '2018-11-01'
×

Informação importante

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