Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xurissoooo

Atualizar campo no banco a cada 15 minutos com +10

Recommended Posts

Quero fazer um jogo

primeira coisa é o campo de ouro que o jogador tem,

 

quero fazer por turno, cada turno é 15 minutos e aumenta 10 de ouro

 

como posso atualizar um campo de todos usuarios com + 10 a cada 15 minutos ?

 

 

nao pode ser so quando o usuario esta logado no site

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, acho que é isto mesmo.

 

Porém, eu estou com meu usuario de maior privilegio na hospedagem e da acesso negado.

 

Tentei pelo proprio phpmyadmin nativo da hospedagem e deu o mesmo erro que eu digitar o comando sql na query pelo meu Sqlyog acessando remoto de casa.

 

Seria uma funcao que nao é permitida nas hospedagens ?

 

 

Erro

Query SQL:

SET GLOBAL event_scheduler = "ON"

Mensagem do MySQL: dot.gif

#1227 - Access denied; you need the SUPER privilege for this operation

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uai #4 após criar o banco, adicionar o usuário é só ir em:

Gerenciar Privilégios de Usuário

selecionar EXECUTE

 

e salvar, difícil né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

jRaphael: Esse negocio ai eu li mas nao entendi como faço pro php

 

 

Williams Duarte

  • Eu fui la e tava tudo marcado já, eu sempre clico em dar permissao pra tudo, nao to entendendo


Por inquanto so consegui por minuto ou por hora,

 

mas ja entrei em contato com a hospedagem e estou esperando resposta

 

 

 

<?php
$PuxaTurno = date('i');


$sql = $conexao2->query("SELECT turno FROM ambiente");
while($linha =  $sql->fetch_array()) {
$turno=$linha['turno'];
}


if ($PuxaTurno!=$turno){
echo "</br>Fator do turno: $PuxaTurno";
echo "</br>Turno atual: $turno";
$turno++;
echo "</br>Novo turno: $turno";


$sql = $conexao2->prepare("UPDATE ambiente SET turno = ?");
$sql->bind_param('i',$turno);
$sql->execute();
echo "</br>Turno alterado!</br>";
}


?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Melhor ainda ser por minuto e por hora, pq dai voce faz um select por minuto e verifica o usuário q deu UPGRADE por exemplo a 15 minutos atrás, e atualiza ele.

ou seja todo minuto sempre vai verificar / incluir moedas / atualizar hora do upgrade e pronto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve fazer como o @Motta Falou, por Event.

 

Mas antes disso você tem q criar uma stored procedure que atualize o a coluna de ouro.

 

O Event fai executar a procedure no tempo que você escolher.

Compartilhar este post


Link para o post
Compartilhar em outros sites


Criando evento

 

 

CREATE EVENT `nome_banco`.`maisDezOuro`

ON SCHEDULE EVERY 15 MINUTE

DO CALL spMaiDezOuro;

 

Criando a Procedure

 

CREATE PROCEDURE `nome_banco`.`spMaisDezOuro`()

UPDATE nome_tabela SET coluna_ouro = coluna_ouro + 10;

Compartilhar este post


Link para o post
Compartilhar em outros sites
Wendell Barreto || Atendente
Olá André, infelizmente não é possível liberar esse recurso por motivos de segurança.

Qualquer dúvida estamos à disposição.

--
Wendell Barreto - Suporte Técnico
Alphimedia - Desenvolvimento e Hospedagem de Sites
www.alphimedia.com Como você classificaria essa resposta? Ruim Boa

 

23/01/2014 09:01André Machado || Cliente
Tentei ativar o event_scheduler pelo meu sqlyog acessando remoto de casa pela query e deu erro que nao tenho privilegio suficiente.

Error Code : 1193
Unknown system variable 'event_schueduler'
(0 ms taken)

Entao abri pelo phpmyadmin e deu o mesmo erro, segue abaixo

Erro
Query SQL:

SET GLOBAL event_scheduler = "ON"

Mensagem do MySQL: Documentação

#1227 - Access denied; you need the SUPER privilege for this operation 



Quero ativar isto pois estou desenvolvendo para fins de estudo um jogo mmorpg web com php e mysql baseado em turnos,
Então preciso criar um evento que a cada 20 minutos o banco de dados altere um campo chamado turno para +1

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então babou :(

 

Opções:

 

1 - Mudar pra uma hospedagem decente

2 - Fazer por CRONTAB se o servidor for linux (É Claro, se vc tiver acesso SSH, ou seu servidor pelo painel permitir agendamento de tarefas, este último caso torna independente o SO do servidor)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que a primeira opção!

 

Cara quando você vê algo parecido com isso

 

xxxxxxxxx - Suporte Técnico
xxxxxxxxxxxx - Desenvolvimento e Hospedagem de Sites

Isso é uma revenda de hospedagem de algum freela :rolleyes:

 

Depois de rodar por inúmeras empresas de hospedagem, achei uma galera parceira, digo parceira porque eles resolvem seu problema, vale a pena conferir.

 

Como eles mesmo dizem suporte amigo.

 

e-consulters.com.br

https://twitter.com/econsulters

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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