PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1 2 
Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externys 2007-04-19 23:49:15
Ütleme, et mul on muutuja x, $x=1, kuidas ma saaksin teha nii, et muutuja x väärtus tõuseks iga tunniga näiteks ühe võrra .seda mysql ja php'ga? tänud
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: rtfm 2007-04-19 23:53:48
TSITEERITUD:
Ütleme, et mul on muutuja x, $x=1, kuidas ma saaksin teha nii, et muutuja x väärtus tõuseks iga tunniga näiteks ühe võrra .seda mysql ja php'ga? tänud


kas kasutajal on aken lahti tund aega järjest?
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externys 2007-04-19 23:54:11
ma tahaks teha nii, et ei ole
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: rtfm 2007-04-19 23:59:12
TSITEERITUD:
ma tahaks teha nii, et ei ole


aga pane kellaaja järgi, kui kell on 12, siis x=1 ja kui kell on 13, siis x=2 hihi

tegelt saad ka crontabiga mingi scripti ajastada mis sul baasis numbrit suurendab
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: . 2007-04-20 00:40:40
Põhimõtteliselt võid ju ka PHP jätta igavesse tsüklisse ja update-ida, kuid küsimus on ju ikka tegelt selles, et sa ei vaja mitte PHP muutuja suurendamist vaid mõnd koodi välist andmehoidmist.

PHP on mõeldud ikkagi per request lahendusteks, mis tähendab, et muutujad "elavad" ühe requesti raames.
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externys 2007-04-20 07:42:30
koodi väline andmehoidmine käibki ju mysql'ga.

kellaajaga ei saa ju, sest siis hakkab järgmine päev jälle nullist.

kas keegi ei oska aidata?
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: axelpaan_ 2007-04-20 08:11:22
TSITEERITUD:

kellaajaga ei saa ju, sest siis hakkab järgmine päev jälle nullist.

saab ikka

see kood näitab iga tunni möödudes ühe võrra suuremat arvu ja ei hakka järgmisel päeval nullist

PHP kood:
 
echo ceil((time() - mktime(8,0,0,4,20,2007)) / (60*60));


RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: Endel 2007-04-20 13:14:30
Mul ema tegi ikka kodus saia pärmitaignast, see kasvas ka iga tunniga.

Aga tegelikult. crontabiga kutsud oma skriptikese iga tund välja ja see teeb päringu mysqli mis suurendab muutujat.
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: mainer, 2007-04-20 14:13:05
Timestamp on unikaalne alati ja sellest saad oma soovitud muutuja alati väljaarvutada, kui sul algusaeg teada on.
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externy 2007-04-20 18:33:10
aja puhul peaks ju php fail pidevalt jooksma, aga kas mysql'iga ei ole mingit võimalust seda teha?
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externys 2007-04-20 18:36:57
TSITEERITUD:
Mul ema tegi ikka kodus saia pärmitaignast, see kasvas ka iga tunniga.

Aga tegelikult. crontabiga kutsud oma skriptikese iga tund välja ja see teeb päringu mysqli mis suurendab muutujat.


saan ma õigesti aru, et crontab on mingi programmi laadne asi, mis paneb mingi skripti mingi määratud aja tagant tööle?
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: Keegi_Teine 2007-04-20 18:37:08
TSITEERITUD:
aja puhul peaks ju php fail pidevalt jooksma ...

vale arusaam, sulle anti ju kood põhimõtteliselt ette, uuri seda

Viimati muudetud: 20-04-2007 18:37:47
Muutja: Keegi_Teine
Põhjus:

RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: Endel 2007-04-20 18:53:25
TSITEERITUD:
saan ma õigesti aru, et crontab on mingi programmi laadne asi, mis paneb mingi skripti mingi määratud aja tagant tööle?

Linuxis jah crontab selline. Määrad mis proge käima tõmmatakse ja mis intervalliga. Windowsi ekvivalent oleks siis Scheduled tasks.

Põhimõtselt on sul edasi kaks varianti (ma räägin nüüd Linuxi seisukohast):

1. crontabis käivitatakse sinu php skript käsurealt: a la "/usr/bin/php sinuskript.php"

2. crontabis käivitatakse brauser mis tõmbab käima sinu skripti: a la "lynx http://sinudomain.ee/sinuskript.php" (pluss veel optioone et pane pärast laadimist kinni jne).

Mõnes mõttes meeldib mulle variant nr 2 rohkem sest skript käitub samamoodi nagu ta olekski webist loetav, st et sa saad seda paremini testida - nt käsurealt ei ole olemas muutujaid mida paneb paika webiserver ($_SERVER jne), jm selline ninnu-nännu, saad aru küll onju. Aga et suvaline mart ei saaks seda käima panna pead skriptile turvat peale panema. Sellist süsteemi kasutab näiteks Zone.

Loodetavasti oli abi.
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: Karl_Punk 2007-04-20 19:15:23
Kui endal serveris croni võimalus puudub, siis võid panna oma windoosa masinas brauseri mingi aja tagant avanema :) see on muidugi porno.

Parem tee mingi php skript mis sulle uue muutuja kuskile kirjutab igal tunnil.
tasuta croni saad teha siin:
http://www.webcron.org/

iseasi kui vastupidav see on, aga ma olen kasutanud ja vahest ajab asja ära :P
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externys 2007-04-20 20:00:54
tänud kõigile:D
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: aksel 2007-04-20 23:15:53
TSITEERITUD:
Kui endal serveris croni võimalus puudub, siis võid panna oma windoosa masinas brauseri mingi aja tagant avanema :) see on muidugi porno.


On olemas curl ja wget ka windowsi jaoks ning võid vabalt neid at-ga käima panna iga tunni tagant.
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: rtfm 2007-04-21 10:36:06
TSITEERITUD:


On olemas curl ja wget ka windowsi jaoks ning võid vabalt neid at-ga käima panna iga tunni tagant.


croni ekvivalente on ka wini jaoks nii et tapab
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externys 2007-04-21 14:20:26
kuid kuidas teha nii, et vajalikke lehti saaks käivitada ainult cron? muidu võivad ju kes tahes seda lehte aina uuesti ja uuesti käivitada
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: asdfafsd 2007-04-21 14:46:45
TSITEERITUD:
kuid kuidas teha nii, et vajalikke lehti saaks käivitada ainult cron? muidu võivad ju kes tahes seda lehte aina uuesti ja uuesti käivitada

sa ei pea seda yldse ju public kausta panema. Võta üks kaust allapoole näiteks. Või siis pmst võib failile ainult õigused mis lubavad cronil seda käivitada. man chmod abiks.
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externysss 2007-04-21 15:51:13
nüüüd tekkis mul veel üks küsimus :

kas sinna kus on kirjas : "command to run" sinna lahtrisse kirjutan faili aadressi mida cron peaks käima panema?
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: rtfm 2007-04-21 15:57:14
TSITEERITUD:
nüüüd tekkis mul veel üks küsimus :

kas sinna kus on kirjas : "command to run" sinna lahtrisse kirjutan faili aadressi mida cron peaks käima panema?


me ei tea su kasutajaliidest peast, valgusta millist kasutad, aga tundub, et sinna pead jah panema käsurea mida tahad käima lasta. Tavaliselt ei piisa ainult failinimest, kui lased wgetia käima veebiõhise , siis "wget failinimi jne" , kui phpcli -ga siis "path/to/php failinimi jne"
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: externy 2007-04-21 17:20:46
kasutaja liideseks on veebipõhine cpanel
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: Endel 2007-04-22 18:37:41
TSITEERITUD:
kasutaja liideseks on veebipõhine cpanel

Kui sa teed oma skripti webi kaudu äksessitavaks siis ta eraldi kataloogi ja kataloogile parool peale. Aadress, nagu me kõik teame, on kujul http://user:password@sinudomain.ee/kataloog/sinuskript.php. command to run oleks siis "wget seesamaaadress", või "lynx aadress" vms.

Kui sa teed commandline skripti siis "php skriptiasukoht.php".
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: muidku 2007-04-22 18:59:49
aga muidku iga tund sql promptist paned ühe otsa ja enter
RE: Muutuja kasvaks iga tunniga? Kuidas seda teha?
Postitaja: axelpaan_ 2007-04-22 23:05:58
ma ikka ei saa aru, milleks on vaja cron-iga mingit skripti käima lasta, mis andmebaasis midagit kaunerit iga tund suurendab. See on väga ebausaldusväärne. Kujutage, ette naiteks, et wget annab mingi gateway timeouti, kas siis jääb kaunter suurendamata?

Miks ei võiks olla andmebaasis lihtsalt mingi staatiline timestamp väärtus, et mis ajahetk loetakse 0-ks, ning siis lihtsate php funktsioonidega arvutatakse välja, mis numbrit teatud ajahetkel näitama peab.
Kogu croni/at, wget/lynx, jne jama jääks ära. Ärge tehke elu keeruliseks.

Leheküljed: 1 2 

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0938968658447