Cron Bug

  • Hallo,


    bij mijn spel doet het uurloon van de clan het niet goed.


    Ik denk zelf dat dit aan de cron hour doet. Kan iemand hier na kijken.
    Dit is mijn script:

  • Het volgende hoort niet in je cron thuis:


    PHP
    $data2                = mysql_query("SELECT * FROM `[users]` WHERE `login`='{$_SESSION['login']}'");
        $data                = mysql_fetch_object($data2);


    Meestal (Altijd), worden crons niet per user uitgevoerd, en bestaat de SESSION array al helemaal niet (of is irrelevant).


    Daarbij kunnen alle updates van de users tabel worden samengevoegd. Dat scheelt een hele hoop in snelheid. Als het mogelijk is ook de WHERE statement weghalen: Dit versloomd je query enorm.


    Daarnaast zal ik even nadenken over een mogelijkheid om de uurloon van de clans in ??n query te proppen.

  • PHP
    <?php // kleur
          mysql_query("UPDATE `[users]`, `[clans]` SET `[users]`.`cash`=`[users]`.`cash`+(50*`[clans]`.`money_lvl1`),`[users]`.`bank`=`[users]`.`bank`+(150*`[clans]`.`money_lvl1`) WHERE `[users]`.`clan` = `[clans]`.`name` AND `[clans]`.`type`=1");
          mysql_query("UPDATE `[users]`, `[clans]` SET `[users]`.`cash`=`[users]`.`cash`+(100*`[clans]`.`money_lvl1`),`[users]`.`bank`=`[users]`.`bank`+(100*`[clans]`.`money_lvl1`) WHERE `[users]`.`clan` = `[clans]`.`name` AND `[clans]`.`type`=2");
          mysql_query("UPDATE `[users]`, `[clans]` SET `[users]`.`bank`=`[users]`.`bank`+(FLOOR(150+RAND()*(301-150))*`[clans]`.`money_lvl1`) WHERE `[users]`.`clan` = `[clans]`.`name` AND `[clans]`.`type`=3");


    Dat zou de betere versie voor uurloon van clans moeten zijn...

  • Heey, ik zei één query!:p



    Eén afwijking ten opzichte van de originele (ook bij die van Darsstar), alle users van type 3, krijgen nu een afzonderlijke random, dus allemaal andere hoeveelheden van hun clan.


    Ook een pluim voor jou query Darsstar, mooi gemaakt.;)


  • Zo dus?


  • ZO? Als het fout is kan je het even voor mij doen?

  • Nee, valt mij een beetje tegen, zo:



    Het is één query.

  • Haha ok probeer deze maar eens:


  • Hij werkt ja, zolang je spel slechts één speler heeft. En ik ga er natuurlijk vanuit dat je er wel een paar meer hebt. Dus: Dat data-object moet uit dat script. Je ziet staan: $_SESSION, als dat in een cron-file staat, moeten de bellen toch wel gaan rinkelen.

  • Uurloon wel ja...



    Dat laat je allemaal door PHP berekenden...
    En maar voor één persoon...
    Met andere woorden...
    Wil het toeval het dat de cron wordt uitgevoerd door een noob...
    dan krijgt IEDEREEN heel wijnig inkomen...
    Wordt het juist door de nummer 1 uitgevoerd, dan krijgt IEDEREEN juist heel veel inkomen...

  • |Dat stukje bebruik ik niet meer.

    Nieuwe reactie samengevoegd met originele reactie op 06.12.09 19:09:06:
    Hij geeft alleen uurloon als er iemand online is hoe kan dit?

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!