Forum » Server-Side scripting » Cron probleempje
Lolz0r.
Berichten: 245
avatar
Offline Stuur privebericht
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:

Code | Selecteer Alles
minimaliseren
1
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:
Code | Selecteer Alles
minimaliseren
1
2
$dbres15                mysql_query("SELECT * FROM `[clans]`'");
    
$clan                mysql_fetch_object($dbres15);

2010-03-08 21:55:13
Dit topic is 43 keer bekeken door 3 verschillende leden
Reacties op: "Cron probleempje"
1
nyan nyan nyan nyan
Berichten: 2080
avatar
Offline Stuur privébericht
Je hebt in de query bij $dbres15 al een fout staan; de ' hoort er niet.
Code | Selecteer Alles
minimaliseren
1
$dbres15                mysql_query("SELECT * FROM `[clans]`");

Staat het bijv. in een while-loop? Of? wat? Laat maar weten.
2010-03-08 21:59:48
Lolz0r.
Berichten: 245
avatar
Offline Stuur privébericht
Nee geen while-loop.

Nieuwe reactie samengevoegd met originele reactie op 09.03.10 23:27:47:
*Bump*

Nieuwe reactie samengevoegd met originele reactie op 09.03.10 23:28:14:
...
2010-03-08 22:18:41
Berichten: 9
avatar
Offline Stuur privébericht
@ Jannick, je ziet toch dat dit geen While Loop is, hij stuurt toch dat stuk script, en WHILE-LOOP script je ook degelijk anders..

@ Reverb, ik denk je dat je dat stuk script moet vergelijken met wat andere scripts die op de zelfde wijzen werken...
2010-03-09 23:30:00
Lolz0r.
Berichten: 245
avatar
Offline Stuur privébericht
Ja maar die werken allemaal op
Code | Selecteer Alles
minimaliseren
1
{$data->login}
2010-03-09 23:30:40
Vreemd
Berichten: 1237
avatar
Offline Stuur privébericht
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:
Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE `[clans]` SET `bblimiet`=10");

Zo staat de limit in steen gehouwen (hardcoded).
Of misschien had je dit in gedachten:
Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE `[clans]` SET `bblimiet`=`limiet`");
2010-03-09 23:57:56
nyan nyan nyan nyan
Berichten: 2080
avatar
Offline Stuur privébericht
@"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:
Code | Selecteer Alles
minimaliseren
1
2
3
$dbres15                mysql_query("SELECT * FROM `[clans]`");
$clan                mysql_fetch_object($dbres15);
mysql_query("UPDATE `[clans]` SET `bblimiet`='" $clan->limiet "'");
2010-03-10 00:01:31
Lolz0r.
Berichten: 245
avatar
Offline Stuur privébericht
@ 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.
2010-03-10 03:40:21
Vreemd
Berichten: 1237
avatar
Offline Stuur privébericht
1) het is Darsstar
2) Waarom probeer je het nou toch met een fetch?
Je zou er dan een while in moeten stoppen:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
$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:
Code | Selecteer Alles
minimaliseren
1
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?
2010-03-10 14:39:16
Lolz0r.
Berichten: 245
avatar
Offline Stuur privébericht
Maar dan wordt het bblimiet in de database letterlijk LIMIET
haha, het moet ieder zijn ingesteld limiet worden.

Quote: Darsstar

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

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
$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:
Code | Selecteer Alles
minimaliseren
1
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?

2010-03-12 10:27:34
Vreemd
Berichten: 1237
avatar
Offline Stuur privébericht
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.
2010-03-12 15:38:57
Reageer op: "Cron probleempje"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden