PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Query, wie abfragen?


DSF
12.11.2007, 13:23
Hallo miteinander

Aus unzähligen Informationen hier und den Original-vB-Scripten
habe ich mal soweit einen funktionierenden Cronjob zusammen bekommen.
Für mein Kenntnisstand bin ich jetzt am Anschlag.

Wie muss das Query lauten wenn nur verschoben werden darf wenn es
mindestens eine Antwort auf ein Thema gegeben hat?


error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
exit;
}

$tage = 1;
$von = '30';
$nach = 22;

$vbulletin->db->query_write("
UPDATE " . TABLE_PREFIX . "thread
SET forumid = " . $nach . "
WHERE forumid IN(" . $von . ")
AND dateline < " . (TIMENOW - ($tage * 24 * 60 * 60))
);

require_once('./includes/functions_databuild.php');
$forums = $vbulletin->db->query("
SELECT forumid
FROM " . TABLE_PREFIX . "forum
ORDER BY forumid DESC
");

while($forum = $vbulletin->db->fetch_array($forums))
{
build_forum_counters($forum['forumid']);
}

log_cron_action('', $nextitem, 1);

Boothby
12.11.2007, 16:58
...
WHERE forumid IN(" . $von . ")
AND replycount > 0
...

DSF
12.11.2007, 18:02
Eine Frage, eine Antwort ... Klasse und dankeschön! :)

Mal eine "Glaubensfrage":
Hier habe ich den Cronjob als eigenständiges Script gemacht.
Im includes/cron/cleanup,php hat es so ziemlich am Ende ein Hook in welchen man sich auch einklinken könnte.

Welche der beiden Möglichkeiten ist zu favorisieren zumal beide Wege letztendlich zum gleichen Ergebnis führen?
Welches entspricht eher der Philosophie des vB?

Mystics
14.11.2007, 15:50
Wenn die Zeit, zu der cleanup.php ausgeführt wird, passt, würde ich den Hook nehmen. So braucht man bei Updates nicht daran zu denken, wieder die Datei hochzuladen oder sonst irgendwie Rücksicht darauf zu nehmen.

DSF
14.11.2007, 23:52
Wenn die Zeit, zu der cleanup.php ausgeführt wird, passt, würde ich den Hook nehmen...

Danke, so hab ich es jetzt auch gemacht.
Die Lösung mit eigenem Cron-Job behalte ich mal als praktische Uebung ... wer weiss ... ;)