Cron probleempje

  • Ik heb een cron die elke dag uitgevoerd wordt...


    Wat ik dus precies wil is dat het limiet van de bank elke dag weer op het limiet komt te staan dat is ingesteld..


    Het volgende wil ik uitvoeren:


    PHP
    mysql_query("UPDATE `[clans]` SET `bblimiet`='$clan->limiet'");


    Elke clan moet dus dat limiet weer terug krijgen..


    Hoe doe ik dat??


    Heb ook al met dit geprobeerd, maar dat werkte niet:

    PHP
    $dbres15				= mysql_query("SELECT * FROM `[clans]`'");
        $clan				= mysql_fetch_object($dbres15);
  • Guest, wil je besparen op je domeinnamen? (ad)
  • Je hebt in de query bij $dbres15 al een fout staan; de ' hoort er niet.

    PHP
    $dbres15                = mysql_query("SELECT * FROM `[clans]`");


    Staat het bijv. in een while-loop? Of? wat? Laat maar weten.

  • Nee geen while-loop.

    Nieuwe reactie samengevoegd met originele reactie op 09.03.10 23:27:47:
    [offtopic]*Bump*[/offtopic]

    Nieuwe reactie samengevoegd met originele reactie op 09.03.10 23:28:14:
    ...

  • [offtopic]@ Jannick, je ziet toch dat dit geen While Loop is, hij stuurt toch dat stuk script, en WHILE-LOOP script je ook degelijk anders..[/offtopic]


    @ Reverb, ik denk je dat je dat stuk script moet vergelijken met wat andere scripts die op de zelfde wijzen werken...

  • In crons nooit dingen fetchen, tenzij je hier een hele, maar dan ook echt hele goede reden voor hebt.


    Verder hoop ik dat je begrijpt dat WHERE login='{$data->login}' er voor zorg dat de query maar een enkele user zal bewerken.
    Dan zou je dus eerst alle userd moeten fetchen (nooit doen), en dan per user een query uitvoeren...
    Maar waat is die WHERE clause nou ooit voor nodig?$
    Het zelfde geld voor $clan en wat je allemaal maar kan bedenken.


    Als je dus in crons queries uitvoert, dan wil je PHP zo min mogelijk laten doen.
    En vertel mij eens wat er mis is met:

    PHP
    mysql_query("UPDATE `[clans]` SET `bblimiet`=10");


    Zo staat de limit in steen gehouwen (hardcoded).
    Of misschien had je dit in gedachten:

    PHP
    mysql_query("UPDATE `[clans]` SET `bblimiet`=`limiet`");
  • @"LsJDesigns" Er word maar een beperkt deel gegeven; daarvanuit kan ik er niet veel uit opmaken.


    Reverb, heb je die ' al weggehaald uit de query? Dus ongeveer zoals dit:

    PHP
    $dbres15                = mysql_query("SELECT * FROM `[clans]`");
    $clan                = mysql_fetch_object($dbres15);
    mysql_query("UPDATE `[clans]` SET `bblimiet`='" . $clan->limiet . "'");
  • @ DarStar, ik wil dat elke familie die dus hun eigen limiet heeft ingesteld elke dag bij 'bblimiet' weer het opgegeven limiet krijgt..


    Jannick, het lukte wel, maar iedereen's limiet kwam op 10,000
    Dus niet op het ingestelde.

  • 1) het is Darsstar :p
    2) Waarom probeer je het nou toch met een fetch?
    Je zou er dan een while in moeten stoppen:

    PHP
    $dbres15                = mysql_query("SELECT `naam`, `limiet` FROM `[clans]`");
    while($clan                = mysql_fetch_object($dbres15))
    {
        mysql_query("UPDATE `[clans]` SET `bblimiet`='" . $clan->limiet . "' WHERE `naam`='".$clan->naam."'");
    }


    3) Waarom zou je ooit zo veel queries versturen als de volgende query precies het zelfde effect heeft:

    PHP
    mysql_query("UPDATE `[clans]` SET `bblimiet`=`limiet`");


    4) Waarom moet ik de bovenstaande query nou minimaal twee keer plaatsen voor je op het idee komt die te gebruiken?

  • Maar dan wordt het bblimiet in de database letterlijk LIMIET
    haha, het moet ieder zijn ingesteld limiet worden.


  • Let op de backticks...
    Het zijn geen enkele quotes, dus het wordt niet als de string 'limiet' gelezen, maar als een veld naam.
    Er zijn zelfs geen backticks nodig.


    De code van Jannick zal bij elke clan de zelfde limiet neerzetten.
    Ik geen vergelijkbare code die wel zou moeten werken zoals jij dat wilt.
    Daarna zeg ik dat die code absoluut niet aan te raden is en geef ik een enkele query die wel aan te raden is.

Participate now!

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