MyBB.de Forum

Normale Version: "Task" > SQL-Befehl funktioniert nicht
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Community,

habe mir eine Task-Datei erstellt aktiviert in welcher ich User der Gruppe "5" (soweit sie länger als 24 Stunden nicht aktiviert haben) wieder gelöscht werden sollen. Irgend etwas klappt mit dem Befehl nicht. Eine Aufgabenplanung welche die Task-Datei aufruft wurde selbstverständlich erstellt.
PHP-Code:
function delete_user_not_activated($task)
{
    global $db;

// Löschen aller User welche ihren Account nicht binnen 24 Stunden nach Registrierung aktiviert haben

if ($usergroup && ($regdate TIME_NOW-(60*60*24))) { 
$sql "DELETE FROM `mybb_users` WHERE usergroup = 5";
$mysqli->query($sql);
}

add_task_log($task"Löschung der nicht aktivierten User (>246 Stunden) ausgeführt");
}
?>
ob mit oder ohne IF-Bedinung bzw. mit oder ohne Hochstrich, nciht funktioniert.

Nur:
PHP-Code:
DELETE FROM `mybb_usersWHERE usergroup 5

funktioniert in phpMyAdmin aber nicht im Task.

Was mache ich falsch?
1. Was steht in usergroup drin?
2. Wieso vergleichst du mit einem = anstatt ==
Diese Option gibt es standardmäßig doch bereits Wink

Schau mal in den ACP-Einstellungen unter "Benutzer bereinigen"
(29.11.2020, 16:17)itsmeJAY schrieb: [ -> ]1. Was steht in usergroup drin?
2. Wieso vergleichst du mit einem = anstatt ==
zu 1 = Inhalt: 5
zu 2 = auch versucht.
(29.11.2020, 16:25)SvePu schrieb: [ -> ]Diese Option gibt es standardmäßig doch bereits Wink
Schau mal in den ACP-Einstellungen unter "Benutzer bereinigen"
Danke, das war die Lösung!

Hätte ich mir den Zeitaufwand ersparen können. Smile

Unabhängig davon würden mich trotzdem die korrekten Befehlsaufbauten interessieren, man hat ja noch weitere Ideen.
(29.11.2020, 16:38)Gerti schrieb: [ -> ]Unabhängig davon würden mich trotzdem die korrekten Befehlsaufbauten interessieren, man hat ja noch weitere Ideen.

Auf den ersten Blick fehlt hier ein zweites = Zeichen:
PHP-Code:
if ($usergroup 
Hatte ich oben schon erwähnt, hehe
Ehrliche Meinung: Der Code ist nicht zu retten. Die Variablen $usergroup, $regdate und $mysqli gibt es nicht, die Abfrage ist fehlerhaft und das Datenbank-Query unvollständig.
Zudem ist es ist äußerst unsauber direkt in der Tabelle mybb_users zu löschen, weil es in vielen anderen Tabellen, mehreren Caches und noch im Dateisystem (Avatare) Verweise auf diese gibt. Zum Vergleich hier der Code, der bei einer ordentlichen Lösung ausgeführt wird: https://crossreference.mybb.de/inc/datah...html#l1490
Wie von euch erwähnt, genügt es nicht einfach den User inder Tabelle  mybb_users zu löschen, da nach der Registrierung die User-ID in insgesamt drei Tabellen enthalten ist. Man müsste somit zuerst mittels einem Array die User-IDs der Gruppe 5 erfassen und dieselbigen dann in allen betroffenen Tabellen löschen.

Nachdem die Funktion, wie ich Dank eures Hinweises entdecken durfte, bereits in MyBB enthalten ist hat sich meine Anfrage erübrigt.

Besten Dank für die Hinweise, Tipps, und Anregungen.