Publicidade

AnthraxisBR

Members
  • Total de itens

    249
  • Registro em

  • Última visita

  • Dias vencidos

    3

AnthraxisBR venceu o dia em Junho 6

Teve o conteúdo mais curtido

Reputação

41 Levemente Bom

3 Seguidores

Sobre AnthraxisBR

Informações Pessoais

  • Sexo
    Masculino

Últimos Visitantes

350 visualizações
  1. Boa tarde, Bom, eu preciso fazer um inserção em uma determinada tabela no banco, e sempre que outra tabela for atualizada ou receber um dado novo, isso é pra registro de histórico. Primeiramente eu fiz isso com PHP, e depois fiz com triggers AFTER INSERT, e AFTER UPDATE, os dois tiveram o mesmo desempenho. Mas analisando pensei: O PHP consome o servidor e o MySQL consome o servidor também, ou nesse caso, o PHP consome o cliente e o MySQL consome o servidor? Qual dos dois métodos é 'melhor' , sendo que aparentemente o tempo de execução é o mesmo?
  2. Ata, entendi errado kkk isso ? <?php echo '<a href="javascript:janelaxy(\'square.php?all='. $a1 . '&acao=1\',\'400\',\'100\')" title="Estatística">';
  3. Tenta assim <?php $olink = "square.php?all=" . $a1 . "&acao=1"; ?> <a href='javascript:janelaxy("<?php echo $olink ?>","400","100")' title='Estatística'>
  4. Eu comecei a incluir uma função parecida no sistema aqui da empresa, pra ler uns arquivos gerados pelo ECAC, porem não cheguei muito longe pois tinha outras coisas mais urgentes, mas acredito ser bem possível sim, eu estava tentando com essa classe: https://github.com/mgufrone/pdf-to-html
  5. @Marlon Pacheco Eu tentei fazer assim, mas enchi de dados pra testar, e acabou ficando lento, não daria certo com id, nem com date. @Prog Eu entendi o que estava acontecendo, ele estava literalmente, puxando MAX(date) como campo, não interpretando como parâmetro da query. Solucionei da seguinte forma, mudando o padrão do banco x interação: Ao fazer a inserção do dado seria o dado que iria conter o MAX(date), ele faz uma verificação nos dados anteriores da tabela que continuam o TYPE = 1. Todos os dados inseridos anteriormente nessa tabela tinham como padrão: 1 -> Colaborador 'collab_cod' entrou no grupo 'group_cod' na data xx/xx/XXXX 2 -> Colaborador 'collab_cod' saiu do grupo 'group_cod' na data xx/xx/XXXX Alterei o padrão para: 0 -> Colaborador 'collab_cod' deixou o grupo 'group_cod' na data xx/xx/XXXX , porém usar TYPE != '0' na consulta pelos últimos dados. 1 -> Colaborador 'collab_cod' entrou no grupo 'group_cod' na data xx/xx/XXXX 2 -> Colaborador 'collab_cod' deixou o grupo 'group_cod' na data xx/xx/XXXX Ficou até melhor na documentação, pois tenho a ultima saída, a última entrada, e 0 como padrão para fora do grupo.
  6. Preciso retirar de um tabela, os últimos registros ordenando pela data, e agrupar em seguida, mantendo a ordem, mas não da pra por um GROUP BY depois de ORDER BY, tentei de tudo quanto é jeito. A tabela: CREATE TABLE `internal_users_groups_change_history` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cod` varchar(50) NOT NULL, `relacionated_group` varchar(50) NOT NULL, `relacionated_collaborator` varchar(50) NOT NULL, `date` datetime NOT NULL, `type` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=latin1; Com os dados: id | cod | relacionated_group | relacionated_collaborator | date | type 1 | abc | group_1 | user_1 | 2017-06-21 10:23:16 | 1 2 | acd | group_1 | user _2 | 2017-06-21 10:23:16 | 1 3 | aef | group_1 | user_3 | 2017-06-21 13:11:42 | 1 4 | rgt | group_1 | user_2 | 2017-06-21 13:47:30 | 2 Onde o que eu quero, é buscar os dados pelo grupo, e listar os colaboradoradores, mas apenas o ultimo dado de cada colaborador deve ser exibido. Tentando com MAX(date) e INNER JOIN: SELECT a.* FROM internal_users_groups_change_history a INNER JOIN ( SELECT *, MAX(date) AS date_updated FROM internal_users_groups_change_history GROUP BY relacionated_collaborator ) AS max USING (id, relacionated_collaborator); Assim, ela me responde id | cod | relacionated_group | relacionated_collaborator | date | type 1 | abc | group_1 | user_1 | 2017-06-21 10:23:16 | 1 2 | acd | group_1 | user _2 | 2017-06-21 10:23:16 | 1 3 | aef | group_1 | user_3 | 2017-06-21 13:11:42 | 1 Tentei colocando uma tabela dentro da outra: SELECT * FROM ( SELECT id,cod,relacionated_group,relacionated_collaborator,date,type FROM internal_users_groups_change_history WHERE relacionated_group = "199269352594a7344a21008.97800859" ORDER BY id DESC ) tmp_tbl GROUP BY tmp_tbl.relacionated_collaborator Assim ela também me responde a mesma coisa: id | cod | relacionated_group | relacionated_collaborator | date | type 1 | abc | group_1 | user_1 | 2017-06-21 10:23:16 | 1 2 | acd | group_1 | user _2 | 2017-06-21 10:23:16 | 1 3 | aef | group_1 | user_3 | 2017-06-21 13:11:42 | 1 Ai eu desisti, e fiz no php, funcionou, mas quando eu parei pra pensar, se essa tabela ficar grande, isso vai ser um problema. A resposta ideal seria: id | cod | relacionated_group | relacionated_collaborator | date | type 1 | abc | group_1 | user_1 | 2017-06-21 10:23:16 | 1 3 | aef | group_1 | user_3 | 2017-06-21 13:11:42 | 1 4 | rgt | group_1 | user_2 | 2017-06-21 13:47:30 | 2 Alguém sabe indicar algum método de dar o group by depois do order by ?
  7. Tenta assim: self.closest('td').closest('tr').hide(); Ou só self.closest('tr').hide();
  8. Você precisa indicar as 'rows' também, se a página for estática, da indicar em todas as linhas, se for dinâmica, indica pelo menos depois do container. <div class="container-fluid col-md-12" style="background-color:#eee;"> <div class="row"> <div class="col-md-8"> <div class="col-md-6"> <img src="imagens/113.jpg" class="img-responsive"></div> <div class="col-md-6"> <img src="imagens/115.jpg" class="img-responsive"></div> <div class="col-md-6"> <img src="imagens/11.jpg" class="img-responsive"></div> <div class="col-md-6"> <img src="imagens/112.jpg" class="img-responsive"></div> </div> <div class="col-md-4"> <img src="imagens/elegancia4.jpg" class="img-responsive"> </div> </div> </div>
  9. Boa tarde, Estou com uma dúvida, sobre como fazer uma substituição de valor, antes dele vir para a view, o problema seria isso: Eu tenho um método que constrói a query, e me devolve uma array com os dados, ok, porém, devolve algo como isso: Array ( [0] => Array ( [id] => 1 [cod] => 883459247e102625a2.04648953 [group_name] => A [group_responsible] => 6125591ef39dd1cef7.65402201 [group_responsible_name] => Pedro ) [1] => Array ( [id] => 2 [cod] => 133455925f1d0ca2dd5.16776518 [group_name] => B [group_responsible] => 21015591ef36e6acfc8.66799762 [group_responsible_name] => João ) ) E essa array, é passada para outro método universal, que monta qualquer tabela do sistema de acordo com uma série de parâmetros, mas dentro desse método, o nome do braço da array, tipo 'group_name' é o nome que vai pro thead da tabela, e a resposta fica algo como isso: <thead> <tr class="left"><th>#</th><th>id</th><th>group_name</th><th>group_responsible_name</th></tr> </thead> A dúvida é: Como substituir esse 'group_name', por um 'Nome do grupo', antes de enviar para a view, e sem mudar a estrutura da array. O que eu pensei: <?php public static function mask_view_responses($value) { switch ($value) { case 'group_name': return 'Nome do grupo'; break; case 'group_responsible_name': return 'Nome do responsável'; break; } } Mas assim, além de ter que chamar esse método dentro da view, na hora de renderizar os dados, eu acabaria tendo um método gigantesco e 'estranho', outra ideia que tive também, como todo o banco de dados é estruturado em padrões de nomes, poderia usar um dicionário, e chamar um evento pra substituir as palavras por outras, mas também ficaria bizarro do mesmo jeito, ou até pior pois ficaria bem mais lento, e a substituição ocorreria depois da renderização. Bom, alguém tem alguma outra ideia de como resolver isso ? Desde já obrigado :3
  10. php

    Se eu entendi seria: Eu uso o __construct para definir que 'idade' deve ser booleano, se sim, devolve true, chamo o setter, e se true define: Pessoa -> josé; idade->15; Pelo que eu entendi, é um tipo filtro pra definir, reaproveitar, e pra impedir erros nos métodos que realmente irão fazer interação, seria isso mesmo ?
  11. php

    @jamesbond Boa resposta ! Sabe indicar algum artigo que explique bem o conceito disso : <?php public function __construct(string $nome, string $nomeDono) { $this->nome = $nome; $this->dono = $nomeDono; } De como usar __construct de forma correta ?
  12. @Marlon Pacheco Ja tentei, com 0 de intervalo, mas sem sucesso kk Ele tem como padrão do arquivo 150 de intervalo, mas mesmo zerando ele continua com um delay, acho que esse atrasinho que está dando seja tempo de resposta, ou eu não consegui achar mesmo.
  13. Ao meu ver, nem um, nem o outro, pois seriam os dados de um usuário, e o método _GET fica visível, e facilita muito a vida de alguém mal intencionado. Método POST seria melhor, e na construção, é praticamente igual o método GET, só fazer uma validação básica pra garantir a integridade dos dados.
  14. Se você indicar o documento antes do elemento e do evento disparador, algo como isso: $(document).on('click', '.botao_disparador', function () { mostraConteudo('calcula','config/function_calculadora','show_result','POST'); }) Também ia resolver a questão de ir acrescentando a quantidade de requisição cada vez que aciona o evento, mas não sei explicar o motivo D: ~~ Gostaria muito de saber o porque se alguém puder explicar kkk
  15. Bom dia!! Bom, coloquei em meu sistema um mecanismo em que o usuário habilita a opção de 'Exibir dicas', essas dicas são exibidas em janelinhas, que abrem toda vez que ele reinicia o sistema. Mas, também em cima dos locais que existem interação, tem as tooltips padrões do bootstrap, indicando o que ele precisa fazer, algo como 'de um duplo clique para ver as opções de usuário', ou 'clique com o botão direito para abrir o menu opções secundário', coisas assim. Mas as tooltips padrão do bootstrap tem um delay de mais ou menos 0.5 segundos, talvez um pouco mais, e eu queria que aparecesse instantaneamente quando o mouse passar por cima, e não consegui achar no código do plugin a parte responsável por essa transição, alguém sabe informar onde fica essa parte do código ? ou algum método de contornar isso com jQuery ? Desde ja obrigado