Ir para conteúdo

POWERED BY:

Williams Duarte

Members
  • Total de itens

    3968
  • Registro em

  • Última visita

  • Dias vencidos

    47

Tudo que Williams Duarte postou

  1. Williams Duarte

    Criando uma seleção no banco de dados quando produto estiver vencendo

    Frequentemente deixo algumas Schedules rodando! docker run -d image_name '*/30 * * * * ___cmdstring___' Se é uma recorrencia mensal, que vence daqui 7 dias, jogo em uma fila e disparo a cobrança. Um dia antes do vencimento, vejo quem ainda no pagou e disparo um outro aviso. 3 dias depois outro, nao pagou, dispara um aviso de bloqueio após alguns dias , isto você controla em flags no DB Se a recorrencia é trimestral, semestral ou anual, não faz diferença na consulta, o importante é declarar no select, qual é o intervalo. SELECT DATE_ADD( CURDATE(), INTERVAL 7 days ); SELECT DATE_ADD( CURDATE(), INTERVAL 1 days ); E fazer o filtro. Obs, você tem que ter outros Jobs analisando cadastro etc, para nao ter erro nas cobranças, mas tudo depende das regras de negocios.
  2. Williams Duarte

    Mostrar Resultados sem Repetir Dados

    Group By https://www.devmedia.com.br/desvendando-a-clausula-group-by-artigo-sql-magazine-47/8082
  3. Williams Duarte

    Quais extensões ativar para funções PHP funcionarem?

    Básicas "Or you can specify individual packages like this instead:" https://www.colinodell.com/blog/201911/how-to-install-php-74
  4. Williams Duarte

    Criando uma seleção no banco de dados quando produto estiver vencendo

    Normalize seu banco, data ou é date, datetime ou timestamp etc, menos varchar. ou use strtotime para esta modificação da data! $day = date('d-m-Y'); $newDate = date('d/m/Y', strtotime($day . " +6 month")); echo $newDate; // 26/11/2020 SELECT * FROM tb_renovacao WHERE data_pgto = $newDate
  5. Williams Duarte

    Listar determinara array com PHP

    Ao colocar um código aqui no forum, ajude a te ajudar, ja deixe o formatado. use reduce para chegar onde quer, depois use as funções de array_map, array_filter oque for necessario. Aqui fiz um exemplo de uso do reduce Leia sobre https://www.php.net/manual/pt_BR/ref.array.php
  6. Williams Duarte

    Criando uma seleção no banco de dados quando produto estiver vencendo

    Aparentemente sua query esta errada, não tenho como testar no momento. Mas o correto seria algo assim: mysql> SELECT DATE_ADD( '2011-01-01', INTERVAL 6 month ); +--------------------------------------------+ | DATE_ADD( '2011-01-01', INTERVAL 6 month ) | +--------------------------------------------+ | 2011-07-01 | +--------------------------------------------+ SELECT * FROM tb_renovacao WHERE data_pgto = DATE_ADD(CURDATE(), INTERVAL 180 DAY)"); SELECT * FROM tb_renovacao WHERE data_pgto = DATE_ADD(NOW(), INTERVAL 180 DAY)"); Observaçao: Não use acentução etc em nomes de bancos e tabelas.
  7. Williams Duarte

    criar array com itens adicionais de cada ITEM

    Adicionar https://www.php.net/manual/pt_BR/function.array-push.php Somar https://www.php.net/manual/pt_BR/function.array-sum.php
  8. Williams Duarte

    Sistema de mensagens não lidas.

    Agora explicou direito. Utilize having com count De uma olhada no link abaixo: https://www.w3schools.com/sql/sql_having.asp
  9. Williams Duarte

    Sistema de mensagens não lidas.

    https://www.php.net/manual/pt_BR/pdostatement.rowcount.php + ID do usuário armazenado na sessão, junto ao select.
  10. Williams Duarte

    Laravel SQL Server

    Você pode se conectar a quantos bancos quiser! Só tenha em mente que, tem que especificar qual é a conexão, na model ou diretamente na query, como o exemplo abaixo. $users = DB::connection('mysql')->select(...); $users2 = DB::connection('sql_server')->select(...); senao ira sempre pegar a conexao padrão declara em: 'default' => env('DB_CONNECTION', 'mysql'), https://github.com/laravel/laravel/blob/master/config/database.php Maiores detalhes abaixo: https://laravel.com/docs/6.x/database#using-multiple-database-connections https://stackoverflow.com/questions/31847054/how-to-use-multiple-databases-in-laravel
  11. Williams Duarte

    Filtrar Variável em um select

    Sem entender o que é escopo de uma função e de variáveis, fica dificil mesmo. http://linguagemc.com.br/funcoes-e-escopo-de-variaveis/
  12. Williams Duarte

    Separar # do texto

    Use regex $re = '/^.*#+\w*/m'; $str = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eu iaculis augue, eget hendrerit lorem. Vestibulum id dui rhoncus, sagittis libero in, lacinia diam. Sed id ultricies justo. Ut consequat mauris est, et iaculis turpis semper vitae. Quisque vel turpis bibendum, blandit nunc eu, dignissim nisi. Nullam vehicula, risus a consequat aliquam, massa massa consectetur tortor, ac venenatis ante metus eu nisi. Nunc quis ipsum non lorem luctus efficitur vitae et lorem. #hospital: Santa Rita, Santa Casa, Hosp Corp; #metro: Paraiso, Sé; #shopping: Avenida Center, Catuaí; Suspendisse hendrerit, tortor sed consectetur sollicitudin, urna urna sollicitudin nisi, ac facilisis lacus quam non nulla. Quisque lobortis id sem non laoreet. Integer varius, eros porttitor iaculis eleifend, mauris nisi rutrum metus, non aliquam ipsum magna sagittis sapien. Etiam ultrices nulla in ante lobortis, tempor fermentum libero laoreet. ";'; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); var_dump($matches); Saída array(3) { [0]=> array(1) { [0]=> string(9) "#hospital" } [1]=> array(1) { [0]=> string(6) "#metro" } [2]=> array(1) { [0]=> string(9) "#shopping" } } Se quiser até o ponto e virgula mude a variavel $re para $re = '/^.*#.* .+$/m'; Saida será array(3) { [0]=> array(1) { [0]=> string(45) "#hospital: Santa Rita, Santa Casa, Hosp Corp;" } [1]=> array(1) { [0]=> string(21) "#metro: Paraiso, Sé;" } [2]=> array(1) { [0]=> string(35) "#shopping: Avenida Center, Catuaí;" } }
  13. Williams Duarte

    problema com action

    Faz anos que não via código assim, este tipo de código que deu ao PHP a má fama "anos atrás", não se sabe se é procedural, funcional ou outra coisa! Modifique seu banco para ser autoincrement Depois adicione ao código de inserts, as seguintes linhas: $thread_id = $SQL->lastInsertId(); die($thread_id); E veja oque retorna
  14. Williams Duarte

    Bibliotecas de Assinatura Digital de Documentos

    Ve se te ajuda a dar um norte! https://github.com/thiagomatrix/Assinatura-Digital
  15. Williams Duarte

    Dificuldades para criar arrays de outro array multidimensional

    Faz o seguinte, use primeiro array_reduce e pega as notas e monte o array diciplina_notas, depois ou use map/filter para os demais dados e faça um merge. De uma olhada aqui no manual e estude funções para array https://www.php.net/manual/pt_BR/ref.array.php Exemplo $data = array_reduce($dados, function($accumulator, $item) { $accumulator['nome'][] = $item['nome']; $accumulator['etapa'][] = $item['etapa']; $accumulator['pos'][] = $item['pos']; $accumulator['not_dados'][] = $item['not_dados']; return $accumulator; }, []); print_r($data); Saída Array ( [nome] => Array ( [0] => Nome do Aluno [1] => Nome do Aluno [2] => Nome do Aluno ) [etapa] => Array ( [0] => 7º ANO [1] => 8º ANO [2] => 9º ANO ) [pos] => Array ( [0] => 7 [1] => 8 [2] => 9 ) [not_dados] => Array ( [0] => Array ( [0] => Array ( [0] => PORTUGUES [1] => 7,5 [2] => 120H [3] => AP ) [1] => Array ( [0] => REDAÇÃO [1] => 8,5 [2] => 40H [3] => AP ) [2] => Array ( [0] => HISTÓRIA [1] => 9,0 [2] => 80H [3] => AP ) [3] => Array ( [0] => GEOGRAFIA [1] => 7,0 [2] => 80H [3] => AP ) ) [1] => Array ( [0] => Array ( [0] => PORTUGUES [1] => 7,0 [2] => 120H [3] => AP ) [1] => Array ( [0] => HISTÓRIA [1] => 8,5 [2] => 80H [3] => AP ) [2] => Array ( [0] => REDAÇÃO [1] => 9,0 [2] => 40H [3] => AP ) [3] => Array ( [0] => GEOGRAFIA [1] => 8,5 [2] => 80H [3] => AP ) ) [2] => Array ( [0] => Array ( [0] => PORTUGUES [1] => 8,0 [2] => 120H [3] => AP ) [1] => Array ( [0] => HISTÓRIA [1] => 8,5 [2] => 80H [3] => AP ) [2] => Array ( [0] => REDAÇÃO [1] => 9,0 [2] => 40H [3] => AP ) [3] => Array ( [0] => GEOGRAFIA [1] => 8,0 [2] => 80H [3] => AP ) [4] => Array ( [0] => QUIMICA [1] => 8,5 [2] => 80H [3] => AP ) ) ) ) Bom não vou fazer para você, que o trampo é seu, estamos aqui só para orientar. Vai postando oque fez, que a comunidade te ajuda!
  16. Williams Duarte

    Como mantar o usuário logado e dar logoff por inatividade?

    Segue um tutorial de exemplo: http://www.devwilliam.com.br/php/sistema-de-login-com-cookies-no-php http://www.devwilliam.com.br/php/sistema-de-login-com-ajax-e-php
  17. Williams Duarte

    Como mantar o usuário logado e dar logoff por inatividade?

    Cookie ou localStorage Armarzene o id do User em algum lugar com data de expiração, Verifique se a data esta expirada e pede para logar novamente, excluindo os Cookies ou localStorage Nada mais que um if, se o checkbox for marcado, mantenha os dados no Cookie ou localStorage, Senão, mantenha o logado em Session do PHP ou SessionStorage do Browser https://www.treinaweb.com.br/blog/quando-usar-sessionstorage-e-localstorage/
  18. Williams Duarte

    Input não recebe valor pelo $("input").val("meu novo valor");

    Faz um teste com uma callback $("input[type=text]").keyup(function(){ alert(this.value); });
  19. Williams Duarte

    Pegar dados de um While de uma Classe com Estrutura Preprada através de um novo objeto

    De uma olha nestes padrões https://code.tutsplus.com/pt/tutorials/design-patterns-the-simple-factory-pattern--cms-22345 https://code.tutsplus.com/pt/tutorials/design-patterns-the-facade-pattern--cms-22238
  20. Williams Duarte

    Pegar dados de um While de uma Classe com Estrutura Preprada através de um novo objeto

    Tente separar lógica, banco de dados, regras de negócio de seu algoritimo, e hospedagens será o de menos. Exemplo, com um único objeto, voce ilimina praticamente sete foreachs iguais, oque muda são os parâmetros public function retornarDadosDoElemento($dados_elet) { if(is_array($dados_elet)){ $tipos = array(); foreach ($dados_elet as $key => $thing) { $tipos[$key] = $thing; } return $tipos; } return false; } // uso $var = $this->retornarDadosDoElemento($dados_elet->valor); Estes SQL, também estao se repetindo $ativo=$this->ativo=1; $sql_1=$conexao->prepare("SELECT i.id,i.id_produto_tipo,i.id_produto_subtipo,t.tipo,n.tipo_nome FROM dados_anuncio i LEFT JOIN tipo_produto t ON (t.id = i.id_produto_tipo)LEFT JOIN subtipo_produto n ON (n.id = i.id_produto_subtipo) WHERE i.ativo=? AND n.tipo_nome LIKE '%el%' ORDER BY i.id DESC LIMIT ".$limit.""); $sql_1->bind_param('s',$ativo); $sql_1->execute(); $sqlL_1=$sql_1->bind_result($id,$id_produto_tipo,$id_produto_subtipo,$tipo, $tipo_nome); O que muda são alguns parametros, repare que, se a dados se repetindo, ha uma necessidade de refatoração. Sendo assim abstrai em uma outras classes. Depois injete por meio de dependencias Abaixo é nescessario em OOP while ($sql_1->fetch()) { $this->id[]=$id; $this->tipo[]=$tipo; $this->tipo_nome[]=$tipo_nome; $this->foto_exibicao[]=$foto_exibicao; $this->foto_grande[]=$foto_grande; $this->foto_titulo[]=$foto_titulo; $this->valor[]=$valor; } separe isto em uma função da classe e retorne somente o fetch return $sql->fetch(); Voce pode passar a conexão como dependencia. Resumindo, seu problema não é qualquer lib, mas sim compreender oque é orientação objetos, e a conexão sera de menos. Há não ser que, o php não de suporte a algumas funções de conexão. Por hora desconheço.
  21. Williams Duarte

    retirar aspas e colchetes vindos de um select no banco de dados (dependente id)

    $result['data'][$key] = array( $img, $value['n_titulo'], $value['name'], $value['cpf'], implode(json_decode($value['dependente_id']), ','), $availability, $buttons );
  22. Williams Duarte

    API do Whatsapp enviar arquivos

    Já verificou se existe esta possbilidade de envio, por esta API?
  23. Williams Duarte

    Dificuldades para criar arrays de outro array multidimensional

    Com as novidades versão do php, a 7.4, você consegue fazer isto de uma forma mais simples. Entrou na parada Arrow Functions e Spread Operator duas funções no maximo você extrai tudo isto ai, e monta da forma como quer! https://www.php.net/manual/pt_BR/function.array-map.php https://www.php.net/manual/pt_BR/function.array-filter.php
  24. Williams Duarte

    TOKEN JWT e atenticação em diversos níveis

    Neste caso, entra o ACL "Regras de Acesso" https://pt.wikipedia.org/wiki/Lista_de_controle_de_acesso Mas as autorizações continuam pelo JWT, independente que se tenha um endpoint para Users Admin e outro para Users "comuns", vou dar um exemplo do meu endpoint users Quando eu autentico no sistema, me retorna o seguinte resultado. { "data": { "id": 1, "username": "DUARTE", "email": "example@outlook.com", "email_verified_at": null, "active": true, "admin": true, "last_login": "2020-04-21 00:44:42" }, "meta": { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODAwMFwvYXBpXC9hZG1pbmlzdHJhdGl2ZVwvYXV0aFwvbG9naW4iLCJpYXQiOjE1ODc0OTIxNDQsImV4cCI6MTU4NzQ5NTc0NCwibmJmIjoxNTg3NDkyMTQ0LCJqdGkiOiJUS1hRY3JRcmVxaUZqb0R0Iiwic3ViIjoxLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.UeTE5E4eYZOO9S5wNWCU3I3nA1CZYfc3nxchn6_NE9k", "token_type": "bearer", "expires_in": 3600 } } A segunda chamada, envio o token de volta, "invalido este token, renovo e trago outro no corpo do json". E o ID do usuario envio via post e seleciono todos o meus dados do banco e as regras de acesso "ACL" e as mantenho em Local Storage no navegador, para uso da aplicação SPA. { "data": { "id": 1, "username": "WSDUARTE", "email": "example@outlook.com", "email_verified_at": null, "active": true, "admin": true, "last_login": "2020-04-21 15:02:24", "profiles": null, "phones": [ { "id": 1, "user_id": 1, "phone": "(24) 95922-7390" } ], "addresses": [], "roles": [ { "id": 1, "name": "admin", "label": "Administrator", "standard": true, "permissions": [ { "id": 1, "name": "browser", "label": "Browser", "standard": true, }, { "id": 2, "name": "create", "label": "Create", "standard": true, }, { "id": 3, "name": "list", "label": "List", "standard": false, }, { "id": 4, "name": "edit", "label": "Edit", "standard": true, }, { "id": 5, "name": "delete", "label": "Delete", "standard": true, } ] } ] }, , "meta": { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODAwMFwvYXBpXC9hZG1pbmlzdHJhdGl2ZVwvYXV0aFwvbG9naW4iLCJpYXQiOjE1ODc0OTIxNDQsImV4cCI6MTU4NzQ5NTc0NCwibmJmIjoxNTg3NDkyMTQ0LCJqdGkiOiJUS1hRY3JRcmVxaUZqb0R0Iiwic3ViIjoxLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.UeTE5E4eYZOO9S5wNWCU3I3nA1CZYfc6sxchn6_8s9k", "token_type": "bearer", "expires_in": 604800 } } Há várias formas de se fazer isto, enviar o id no corpo do token, fora, pegar por id, sessão e comparar o que está no token, a lógica é esta e usar SSL. PS. eu tenho aplicação php, que se comunica com Endpoints em Node, com a mesma secret. Não há uma receita de bolo! Obs.: Na duvida e use um Framework tipo o Lumen, e instala o pacote de JWT e já estara pronto para usar. Mas ele vai pela mesma logica acima. Fiz uma com node.js ea mesma filosofia. Voce tem que saber a base de como tudo funciona.
×

Informação importante

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