Was für ein Fehler tritt denn auf? Gibt's eine Fehlermeldung? Grundsätzlich sollte die PN Funktion auch an große Gruppen versenden können, alles andere wäre in meinen Augen ein Fall für den Bug Tracker auf phpBB.com.
Ich würde das ansonsten mit einem Skript erledigen, nicht mit einem reinen SQL Befehl, denn das Aufteilen in mehrere Gruppen wäre da nicht so ganz so einfach. Zumal es dafür auch eine schöne, vorgefertigte Funktion gibt:
group_user_add.
Das ginge dann grob irgendwie so (ungetestet, also nicht direkt auf das Forum loslassen sondern erst am Backup testen!):
1. So viele Gruppen anlegen wie benötigt und niedrigste Group ID merken und im folgenden Skript eintragen:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = 'php';
$group_id = {id hier rein und dann die {} weg};
include("{$phpbb_root_path}common.$phpEx");
include("{$phpbb_root_path}includes/functions_user.$phpEx");
$sql = "SELECT user_id FROM " . USERS_TABLE . " WHERE user_type IN (0,3) ";
$result = $db->sql_query($sql);
$count = 0;
$group_array = array();
while($row = $db->fetchrow($result))
{
if($count <= 1000)
{
$group_array[] = $row['user_id'];
$count++;
}
else
{
group_user_add($group_id, $group_array);
$group_array = array();
$count = 1;
$group_array[] = $row['user_id'];
$group_id++;
}
}
//Falls noch wer übrig ist:
if($group_array)
{
$group_user_add($group_id, $group_array);
}
trigger_error('Fertig!');
2. Das Skript ausführen.
Das ganze kann nur klappen, wenn du alle Gruppen direkt hintereinander anlegst, so dass die Gruppen IDs aufsteigend sind (also z.B. die erste Gruppe die ID 20, die zweite dann 21 usw. hat). Es wird nicht geprüft ob es die Gruppe gibt, das könnte zu seltsamen Ergebnissen führen wenn du nicht genügend Gruppen angelegt hast. Wie gesagt vorher am Backup testen.