Update gebruikers
Hoi,
Ik heb een crontab gemaakt die elke minuut het bestand cron-hout.php laat aanroepen. Dat gaat allemaal perfect, maar het updaten per gebruiker dus niet en ik snap ook niet hoe ik dit oplos.
Ik heb nu bijvoorbeeld dus:
en bovenaan waar ook including staat van mijn config:
Maar nu geeft hij aan iedereen hetzelfde als wat ID 1 heeft in de kolom users.
Normaliter staat er achter FROM users nog WHERE login='{$_SESSION['login']}'");
Maar dat wil ik juist niet, omdat het ook geupdate moet worden als je NIET online bent.
Hoe krijg ik het voor elkaar om ze allemaal hun eigen 'hout' erbij te geven?
Groeten,
Dennis
Ik heb een crontab gemaakt die elke minuut het bestand cron-hout.php laat aanroepen. Dat gaat allemaal perfect, maar het updaten per gebruiker dus niet en ik snap ook niet hoe ik dit oplos.
Ik heb nu bijvoorbeeld dus:
Code (php)
1
2
2
if ($speler->houtveld1 == 0) { $bhout = 2; }
elseif ($speler->houtveld1 == 1) { $bhout = 5; }
elseif ($speler->houtveld1 == 1) { $bhout = 5; }
en bovenaan waar ook including staat van mijn config:
Maar nu geeft hij aan iedereen hetzelfde als wat ID 1 heeft in de kolom users.
Normaliter staat er achter FROM users nog WHERE login='{$_SESSION['login']}'");
Maar dat wil ik juist niet, omdat het ook geupdate moet worden als je NIET online bent.
Hoe krijg ik het voor elkaar om ze allemaal hun eigen 'hout' erbij te geven?
Groeten,
Dennis
Ik kan je nu al garanderen dat het makkelijk zonder een crontab / Cron Job kan. Ik ben ook bezig met zo'n spel (Massive Online Textbased Strategy Game) en tot nu toe (resources erbij , resources eraf, gebouwen bouwen, units trainen) allemaal zonder ik herhaal, zonder Cron Jobs...
Ja maar daar gaat het nu niet om Gamer13. De cronjobs werken wel, geen probleem. Maar het probleem zit hem in het updaten van elke user. Enig idee?
UPDATE spelers SET spelershout = spelershout+100 WHERE ...
@ Hipska,
Wat zou ik bij die WHERE moeten zetten dan? Want hij voert nu nog steeds bij alle users hetzelfde uit als bij de user die ID 1 heeft..
Wat zou ik bij die WHERE moeten zetten dan? Want hij voert nu nog steeds bij alle users hetzelfde uit als bij de user die ID 1 heeft..
UPDATE spelers SET spelershout = spelershout+100 WHERE uid = '".$_SESSION['uid']."' (Teminste als je met sessions werkt).
moeten niet alle gebruikers meer hout hebben ofzo? dan moet je gewoon die where weglaten.
Ja kijk, alle gebruikers moeten hout erbij, maar het hout dat je erbij krijgt ligt aan het niveau dat de speler heeft. En nu heb ik bij diegene die bovenaan in de tabel users staat hout alles op niveau 2 zeg maar gezet, en nu krijgen alle spelers hetzelfde als de speler die bovenaan in de tabel staat..
Ik kijk even of ik dat met die session kan fixen..
Ik kijk even of ik dat met die session kan fixen..
Arg, nee, sessies gaan niet werken, omdat Cron Jobs niet daarmee werken... (zie je dat je dat beter kan berekenen wanneer die gebruiker op de pagina komt!) :P
'GaMer13:
Arg, nee, sessies gaan niet werken, omdat Cron Jobs niet daarmee werken... (zie je dat je dat beter kan berekenen wanneer die gebruiker op de pagina komt!) :P
@ Gamer13,
Dat is geen mogelijkheid lijkt mij, want als er niemand online is krijgt niemand grondstoffen. En als iemand aanvalt heeft die verdediger zijn/haar grondstoffen die hij/zij eigenlijk al moest hebben nog niet ontvangen.
Of heb jij een maniertje van hoe het wel moet? Laat dat dan even weten..
ALs het echt verschillend is per level
Dan moet je eventueel losse queries per level maken :s
Dan moet je eventueel losse queries per level maken :s
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql = 'UPDATE spelers SET spelershout = spelershout+2 WHERE level=0';
mysql_query($sql);
$sql = 'UPDATE spelers SET spelershout = spelershout+5 WHERE level=1';
mysql_query($sql);
..
?>
$sql = 'UPDATE spelers SET spelershout = spelershout+2 WHERE level=0';
mysql_query($sql);
$sql = 'UPDATE spelers SET spelershout = spelershout+5 WHERE level=1';
mysql_query($sql);
..
?>
Gewijzigd op 01/01/1970 01:00:00 door TJVB tvb
Daarvoor had ik mijn eigen berekening al.
@ TJVB,
Ik zal het even proberen..
Code (php)
1
2
3
4
2
3
4
$houtb = ($bhout+$bhout2+$bhout3+$bhout4);
$hout = ($houtb/60);
mysql_query("UPDATE users SET hout=hout+$hout");
$hout = ($houtb/60);
mysql_query("UPDATE users SET hout=hout+$hout");
@ TJVB,
Ik zal het even proberen..
Gewijzigd op 01/01/1970 01:00:00 door Dennis de Vries
tuurlijk...
gewoon hout geven bij nieuwe login. Zoals Jan Koehoorn ooit demonstreerde..
Een veld. Last_Login_Time dit getal min time(); de tijd ertussen bepalen. Dan de grondstoffen bepalen...
gewoon hout geven bij nieuwe login. Zoals Jan Koehoorn ooit demonstreerde..
Een veld. Last_Login_Time dit getal min time(); de tijd ertussen bepalen. Dan de grondstoffen bepalen...
bij de users waar active=1 ?
Dennis, waar komen die $bhout $bhout2 etc vandaan?
Als dat velden uit je db zijn kan het ook zo
mysql_query("UPDATE users SET hout=hout+((bhout+bhout2+bhout3+bhout4)/60)");
Als dat velden uit je db zijn kan het ook zo
mysql_query("UPDATE users SET hout=hout+((bhout+bhout2+bhout3+bhout4)/60)");
'Dennis:
@ Gamer13,
Dat is geen mogelijkheid lijkt mij, want als er niemand online is krijgt niemand grondstoffen. En als iemand aanvalt heeft die verdediger zijn/haar grondstoffen die hij/zij eigenlijk al moest hebben nog niet ontvangen.
Of heb jij een maniertje van hoe het wel moet? Laat dat dan even weten..
Dat is geen mogelijkheid lijkt mij, want als er niemand online is krijgt niemand grondstoffen. En als iemand aanvalt heeft die verdediger zijn/haar grondstoffen die hij/zij eigenlijk al moest hebben nog niet ontvangen.
Of heb jij een maniertje van hoe het wel moet? Laat dat dan even weten..
En of het een mogelijkheid is... Wat lig ik nu dan allemaal te coderen met mijn project dan? Gewoon het verschil uitrekenen van: Last-logged-in en time-now. Dat verschil converteer je naar (als het al niet in een timestamp staat) seconden. Dat doe je maal het aantal grondstoffen die je per seconden krijgt en voilá!
@ TJVB,
Volgens mij werkt het nu met alle mysql queries apart.
Mocht het toch niet zo zijn, dan zal ik eens kijken naar de oplossing van Gamer13 en Tommy.
Bedankt voor de reacties!
Volgens mij werkt het nu met alle mysql queries apart.
Mocht het toch niet zo zijn, dan zal ik eens kijken naar de oplossing van Gamer13 en Tommy.
Bedankt voor de reacties!
Je kunt ook één query maken met een IF erin




