• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

serrano

query automatica..

17 mensagens neste tópico

ola caros amigos...

venho com uma duvida meio esquisita, mas preciso mesmo de vocês..

a questão é a seguinte, eu quero executar uma query automatica, ou seja, esta a query x é executada de hora em hora automaticamente, ou seja, inserir  algo em uma tabela automaticamente de hora em hora...

alguem me pode ajudar?

cumprimento

serrano

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tambem uma vez andei a procura duma coisa dessas e nunca consegui. utiliza javascript ou flash (q foi o meu caso)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

alguem me pode dar uma dica de como isso se faz??

ou encaminhar para um site onde exista uma ja feita...

tenho alguma pressa com isso, se for preciso pago para me fazerem esse codigo..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fazes o script em questão num ficheiro à parte e programas de forma que funcione independentemente da sua localização, ou seja, usa sempre caminhos absolutos no servidor. Se tiveres acesso a algum directorio no servidor onde não seja acedido pelo público, mas internamente no servidor o PHP consegue executar ficheiros lá, coloca-o lá (just in case). Depois, nos cronjobs tens de adicionar um comando do genero:

/usr/bin/php -q /caminho/absoluto/para/o/ficheiro.php

O /usr/bin/php é executavel do PHP e o seu caminho depende de servidor para servidor. O -q faz com que seja executado no modo quiet. Para pores a executar de hora a hora, o Cpanel ou Plesk (se for esse o teu caso) têm formas de definires isso automaticamente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lol, mas qual é a dificuldade? Se me pagares 50€ eu faço-te isso lololol, enfim...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se me colocares tudo a funcionar pago-te os 50 € na boa caro amigo...

o file da cron e o file php a query insert...simplesmente isto...

caso estejam interessados contactem depois das 18

mail

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hoje falei com o pessoal do meu host e disseram-me que  não da para colocar cronjobs...

ha algum script que faça isso???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Andei a pesquisar e tou a usar a função sleep()

mas tou com um problema...

isto é um file a parte

insert.php

<?PHP
//base de dados conecção

$host = "localhost"; //ou mysql.seusite.com.br
$user_db = "root";
$pass_db = "";
$banco = "";
$conecta = mysql_connect($host, $user_db, $pass_db) or print(mysql_error());
$seleciona_banco = mysql_select_db($banco,$conecta) or print(mysql_error());

//Funções

set_time_limit(0);

while (1) {

$sql = mysql_query("insert into tabela (campo1, campo2, campo3) values ('nome','fone','msg1')") or print(mysql_error());

sleep(10);

$sql = mysql_query("insert into tabela (campo1, campo2, campo3) values ('nome','fone','msg2')") or print(mysql_error());

}
?>

o que acontece é o seguinte, faço o file, envio para o host através de ftp, mas só começa a inserir depois de executar o file no browser..e coloca as duas mensagens ao mesmo tempo umas 15 ou 20 vezes de 10 em 10 segundos, mas depois para...

ja agora, em relação a função sleep, onde encontro um artigo em tuga que me fale dessa função?

ja ouvi dizer que é muito sobrecarrega a memoria da maquina...

não é aconselhavel usar essa função permanentemente??

em relação as cron jobs, so da para fazer cronjobs através do painel de controle??

não da para programar um file com a cronjob e enviar por ftp??

vejam aqui:

http://troy.jdmz.net/cron/

http://www.forosdelweb.com/f58/cron-jobs-para-ejecutar-php-375379/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que é que queres fazer ao certo?

Tens a certeza que tens de fazer isso assim?

Explica-te aí.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com o sleep não vais lá... assim que fechares a janela do browser onde executas-te esse script PHP, o código para imediatamente de ser executado. Para puderes adicionar manualmente cron jobs sem usares o painel de controlo devias ter acesso ao site usando um terminal ssh, mas duvido que tenhas tal acesso...

Corrijam-me se estiver errado, mas sem cron jobs acho que não vais lá!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Meu, o teu host TEM de ter dar cronjobs. Porque tens direito a isso nem sequer é nada pesado... Pede que eles dao-te acesso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com o sleep não vais lá... assim que fechares a janela do browser onde executas-te esse script PHP, o código para imediatamente de ser executado. Para puderes adicionar manualmente cron jobs sem usares o painel de controlo devias ter acesso ao site usando um terminal ssh, mas duvido que tenhas tal acesso...

Corrijam-me se estiver errado, mas sem cron jobs acho que não vais lá!

o que eu quero fazer é,tenho um chat, e quero que apareçam mensagens automaticas no chat de tempo em tempo, talvez de meia em meia hora,sem necessitar de ter uma pagina aberta, vejam a query

$sql = mysql_query("insert into tabela (campo) values ('conteudo')") or print(mysql_error());

quero que esta operação seja executada sem necessitar de executar nenhum ficheiro porque??

imaginamos, estavam 10 membros online, havia 10 paginas abertas, o ficheiro estava a ser executado  10 vezes, e ai entravam dez mensagens.....tou certo??

a menos que exista alguma função que contorne esse problema...

em relação a me darem acesso as cron, ja contactei o pessoal e eles me disseram que não é porssivel..

perdem um cliente...

alguem te uma ideia de como posso por a funcionar sem cron??

se for preciso pago para me ajudarem com este problema..

cumprimentos

serrano

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que já estou a perceber o que queres fazer.

Segundo percebi, queres que de X em X minutos, apareça uma mensagem nesse teu chat como se fosse uma mensagem de servidor ou assim. E para que isso aconteça, basta executar aquela query ali em cima, é isso?

Óbvio que se tiveres esse código a verificar se já passou mais meia hora no script que os membros usam, essa mensagem ia escrever tantas vezes quantos membros estavam no site. Mas podes fazer exactamente isso, mas verificando antes se há necessidade de mandar mensagem. Em vez de só teres um campo com a mensagem, podias ter por exemplo 2, um com data/horas e o outro com a respectiva mensagem. Antes de inserires a mensagem no servidor, verificas a data/hora da última e fazes as contas, se tiver passado X minutos, inseres a nova mensagem, caso contrário não inseres nada. Claro que desta forma, dependendo do número de membros online, poderá ser um pouco intensiva para o servidor devido as duas queries (no máximo, no mínimo uma) que tens de fazer (uma para sacar a data/hora da última mensagem e outra para inserir nova mensagem se for preciso). Uma forma de minimizar isso seria: na primeira query que fizeres para sacar a data/hora, guardas o valor numa variável de sessão para teres um ponto inicial de controlo, depois, enquanto o membro estiver no chat, a sessão está activa e essa variável guarda a data/hora da última mensagem de servidor a ser enviada e é só comparares com ela em vez de ires à base de dados. E não te esqueças de quando mandares nova mensagem para o servidor, actualiza a variável da sessão com a data/hora da nova mensagem acabada de enviar.

Assim sem pensar muito no assunto, era isto que eu faria para contornar o problema. Claro que o ideal seria um cron job a executar um script de X em X tempo...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora