Seite 1 von 1

Error getting user list for group

Verfasst: 17.05.2005 07:15
von Medics
Hallo zusammen,

wenn ich die Benutzergruppen auflisten will bekomme ich die folgende Fehlermeldung:

Code: Alles auswählen

Error getting user list for group

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'ORDER BY u.username' at line 7

SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending FROM phpbb_users u, phpbb_user_group ug WHERE ug.group_id = 55 AND u.user_id = ug.user_id AND ug.user_pending = 0 AND ug.user_id <> ORDER BY u.username

Line : 786
File : groupcp.php
Ich verwende phpBB 2.0.15 und habe auch verschiedene Mods eingebaut.
Bis jetzt hat alles super funktioniert.
Meine letzte Veränderung war das Update auf 2.0.15 und das Update des
Attachment Mod auf 2.3.13.

Eine genauere Beschreibung: Wenn ich oben im Forenmenü
auf "Benutzergruppen" klicke, erscheint die Seite mit der Auswahlbox der
vorhandenen Gruppen (Gruppen ohne deine Mitgliedschaft). Lasse ich die
erste vorhandene Gruppe in der Liste stehen und wähle "Informationen",
dann werden die Gruppenmitglieder sauber angezeigt. Suche ich mir
jedoch eine andere Gruppe aus der Liste aus und wähle "Informationen",
dann bekomme ich die oben angegebene Fehlermeldung.

Das Board findet sich unter http://www.drk-kierspe.de/forum

Die Datei groupcp.php findet sich unter http://www.drk-kierspe.de/forum/groupcp.php.txt

Ich wäre sehr dankbar, wenn sich das mal jemand anschauen könnte.

Vielen herzlichen Dank dafür.
Christian

Verfasst: 17.05.2005 09:43
von MrMind
Ich habs mir angeguckt, konnte aber keinen Fehler feststellen. Ich konnte lediglich das ganze eingrenzen wo der Fehler zu finden ist.

Allerdings in dem Bereich habe ich keinen Fehler gefunden:

Code: Alles auswählen

//
	// Get group details
	//
	$sql = "SELECT *
		FROM " . GROUPS_TABLE . "
		WHERE group_id = $group_id
			AND group_single_user = 0";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql);
	}

	if ( !($group_info = $db->sql_fetchrow($result)) )
	{
		message_die(GENERAL_MESSAGE, $lang['Group_not_exist']); 
	}

	//
	// Get moderator details for this group
	//
	$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm  
		FROM " . USERS_TABLE . " 
		WHERE user_id = " . $group_info['group_moderator'];
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql);
	}

	$group_moderator = $db->sql_fetchrow($result); 

	//
	// Get user information for this group
	//
	$sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending 
		FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
		WHERE ug.group_id = $group_id
			AND u.user_id = ug.user_id
			AND ug.user_pending = 0 
			AND ug.user_id <> " . $group_moderator['user_id'] . " 
		ORDER BY u.username"; 
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql);
	}
Ich muss allerdings auch dazu sagen, das ich net jedes kleinste bissl genau geprüft habe sondern einfach nur überflogen habe, wo sich die meisten beliebtesten Fehler verstecken.

Bei dir wird in der letzten SQL-Abfrage die Variable $group_moderator['user_id'] nicht eingesetzt bzw. als Leerstring.

Es könnte meiner ansicht auch sein, das vielleicht die Gruppenmoderatoren nicht mehr vorhanden sind, bzw. nicht in der DB eingetragen. Solltest du mal nachgucken (einmal via ACP welcher User als Gruppenmoderator eingetragen ist und dann aufjedenfall in der DB nochmal die Userid und so prüfen)

Allerdings denke ich, wenn das net so wäre, hät er bestimmt schon früher einen Fehler ausgeworfen.

Mfg
MrMind

Verfasst: 17.05.2005 16:45
von Medics
Hallo MrMind,
MrMind hat geschrieben:Es könnte meiner ansicht auch sein, das vielleicht die Gruppenmoderatoren nicht mehr vorhanden sind, bzw. nicht in der DB eingetragen.
Das mit den nicht vorhandenen Gruppenmoderatoren hat mich
nachdenklich gemacht. Ich habe vor ein paar Tagen den User gelöscht,
der Besitzer und somit Gruppenmoderator der Gruppen war. Es war der
Administrator des Boards. Danach habe ich einen anderen User als
Administrator angelegt. Kann es daran liegen? Wahrscheinlich, oder?

Ich schau mir das gleich mal an und melde mich dann mit meinen
Erkenntnissen.

Vielen Dank erstmal für Deine Mühe!

Christian

Verfasst: 17.05.2005 16:53
von Medics
Super, es funktioniert wieder. Es lag wirklich am nicht mehr vorhandenen Gruppenmoderator.

Der SQL-Befehl:

Code: Alles auswählen

UPDATE phpbb_groups
    SET group_moderator=99
    WHERE group_moderator=2
hat das Problem dann behoben.

Nochmals vielen Dank!

Christian

Verfasst: 18.05.2005 08:00
von MrMind
Keine Ursache.

Wenn du wieder so ein Problem hast dann schau dir mal die SQL-Meldung genau an. Wenn dann sowas steht wie:

Code: Alles auswählen

 ... WHERE irgendwas = AND ...
Fehlt was in der Zuweisung, dies kann in erster Linie daran liegen, das eine Variable bei der Zuweisung gelöscht wurde (daher erstmal den Code betrachten) und wenn da alles stimmt, dann muss ein "Lade-Fehler" bei der Variable meistens die Ursache dafür sein. Wie das mit dem fehlenden Gruppenmoderator, da keine ID geladen werden konnte, war die Variable als Leerstring deklariert.

Mfg
MrMind