Seite 1 von 3

[Meeting-Mod] SQL Fehler (gelöst)

Verfasst: 25.04.2007 18:42
von Overhead
Wenn ich im ACP in der Benutzer-Adminstration auf Benutzer finden klicke kommt folgende Meldung im Suchfenster (popup).
Allgemeiner Fehler

Could not get meeting access data

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6

SELECT g.group_id FROM phpbb_groups g, phpbb_user_group ug WHERE g.group_id = 69 AND g.group_id = ug.group_id AND ug.user_pending <> 1 AND g.group_single_user <> 1 AND ug.user_id =

Line : 96
File : page_header.php
im betreffenden Bereich der page_header.php finde ich keinen Fehler - oder habe ich etwas übersehen?

Code: Alles auswählen

		$sql_auth_id = "SELECT g.group_id FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
					WHERE g.group_id = $meeting_group
					AND g.group_id = ug.group_id
					AND ug.user_pending <> " . TRUE . "
					AND g.group_single_user <> " . TRUE . "
					AND ug.user_id = " . $userdata['user_id'];
			if ( !$result_auth_id = $db->sql_query($sql_auth_id) )
			{
				message_die(GENERAL_ERROR, 'Could not get meeting access data', '', __LINE__, __FILE__, $sql_auth_id);
Anscheinend wird wohl die User-Id oder die Session-Id oder auch beide zwar übergeben - aber dann nicht mehr richtig aufgelöst.

Hat jemand eine Idee wie ich das Problem lösen kann? Danke!

EDIT: Hier der Link zur page_header.txt.

cu Overhead

Verfasst: 26.04.2007 11:44
von cYbercOsmOnauT
Meine grauen Augen zeigen mir
Could not get meeting access data
somit ist da wohl ein Fehler im Meetings Mod den Du wohl eingebaut hast. Ergo -> MOD Support Anfrage...

Ich schiebe.

Grüße,
Tekin

Verfasst: 26.04.2007 20:58
von Overhead
@ cYbercOsmOnauT

das dachte ich zuerst auch - aber der Fehlerteufel wirkt sich zwar bei dem Mod aus, kommt aber woanders her - Modeinbau hat sauber geklappt und der funktioniert auch ohne Probleme!

Hier passiert etwas sehr seltsames - der Mod wirft die Fehlermeldung aus wie Du bereits vermutet hast - ich habe eine original page_header.php eingebaut und der Fehler kommt nicht!

Ich habe die Codezeilen aber vollständig aus der Einbauanleitung übernommen! Denn dort heisst es:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/page_header.php

#
#-----[ FIND ]------------------------------------------
#
//
// Parse and show the overall header.
//

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// START Meeting Mod
if ( $gen_meeting_header !== FALSE )
{
	// Get access status for all meetings
	$sql = "SELECT m.meeting_id, mg.meeting_group FROM " . MEETING_DATA_TABLE . " m, " . MEETING_USERGROUP_TABLE . " mg
		WHERE mg.meeting_id = m.meeting_id";
	if ( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, 'Could not get meeting usergroups', '', __LINE__, __FILE__, $sql);
	}

	$meetings_access_ids = array();

	while ( $row = $db->sql_fetchrow($result) )
	{
		$meeting_id = $row['meeting_id'];
		$meeting_group = $row['meeting_group'];

		if ( $meeting_group == -1 )
		{
			$meetings_access_ids[] = $meeting_id;
		}
		else
		{
			$sql_auth_id = "SELECT g.group_id FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
					WHERE g.group_id = $meeting_group
					AND g.group_id = ug.group_id
					AND ug.user_pending <> " . TRUE . "
					AND g.group_single_user <> " . TRUE . "
					AND ug.user_id = " . $userdata['user_id'];
			if ( !$result_auth_id = $db->sql_query($sql_auth_id) )
			{
				message_die(GENERAL_ERROR, 'Could not get meeting access data', '', __LINE__, __FILE__, $sql_auth_id);
			}

			$count_usergroups = $db->sql_numrows($result_auth_id);
			$db->sql_freeresult($result_auth_id);

			if ( $count_usergroups > 0 )
			{
				$meetings_access_ids[] = $meeting_id;
			}
		}
	}

	$db->sql_freeresult($result);

	include($phpbb_root_path.'language/lang_'.$board_config['default_lang'].'/lang_meeting.'.$phpEx);

	if ( count($meetings_access_ids) > 0 )
	{
		$meeting_ids = ( count($meetings_access_ids) == 1 ) ? $meetings_access_ids[0] : implode(',', $meetings_access_ids);
		$sql_meeting_access = ' WHERE meeting_id IN ('.$meeting_ids.') AND meeting_time > '.time();
	}
	else if ($userdata['user_level'] == ADMIN)
	{
		$sql_meeting_access = ' WHERE meeting_time > '.time();
	}
	else
	{
		$sql_meeting_access = '';
	}

	if ($sql_meeting_access != '')
	{
		$sql = "SELECT count(meeting_id) as total_meetings FROM " . MEETING_DATA_TABLE . "
			$sql_meeting_access";
		if ( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not get meeting data', '', __LINE__, __FILE__, $sql);
		}

		while ( $row = $db->sql_fetchrow($result) )
		{
			$meeting_active_ids = $row['total_meetings'];
		}

		$db->sql_freeresult($result);
	}
	else
	{
		$meeting_active_ids = 0;
	}

	if ( $meeting_active_ids == 0 )
	{
		$meeting_active_string = $lang['No_active_meetings'];
	}
	else if ( $meeting_active_ids == 1 )
	{
		$meeting_active_string = $lang['One_active_meeting'];
	}
	else
	{
		$meeting_active_string = sprintf($lang['Active_meetings'], $meeting_active_ids);
	}

	$meeting_link = '<a href="'.append_sid("meeting.$phpEx").'" class="mainmenu">'.$meeting_active_string.'</a>';

	$template->assign_vars(array(
		'MEETING_LINK' => $meeting_link)
	);
}
// END Meeting Mod
Vielleicht kann oxpus von dem der Mod ist sagen was da bei mir im argen ist???!

cu Overhead

Verfasst: 27.04.2007 23:31
von Overhead
Noch einmal hochschieben....

cu Overhead

Verfasst: 28.04.2007 00:54
von oxpus
Naja, ist schon seltsam, daß an dieser Stelle $userdata['user_id'] nicht zur Verfügung steht ;)

Verfasst: 28.04.2007 16:29
von Overhead
@ oxpus

und da Du zwinkerst weisst Du sicherlich auch warum das so ist - hilfst Du mir mal auf die Sprünge ich steh auf dem Schlauch...

cu Overhead

Verfasst: 29.04.2007 10:14
von oxpus
Nein, das weiß ich nicht, sondern sollte ein Hinweis zur Suche bei Dir sein.
Ich kenne ja Dein Board schliesslich nicht!

Verfasst: 29.04.2007 23:41
von Overhead
@ oxpus

also wenn ich Deine gemoddete Zeile aus der page_header.php rauslasse dann taucht der Fehler nicht auf - also gehe ich mal davon aus, dass da etwas an Deinem Mod nicht so stimmt wie es sollte.

cu Overhead

Verfasst: 30.04.2007 07:33
von oxpus
Ich kann das nicht bestätigen!
Der Meeting MOD wurde auf einem vanilla phpBB programmiert und auch aktuell ist er in einem Test phpBB 2.0.22 ohne weitere MODs aktiv und fehlerfrei am laufen.
$userdata steht in der page_header.php auch im Standard immer zur Verfügung, ausser diese Datei würde VOR dem Session Management includiert, was wieder anderweitig zu Fehlern führen würde.
Daher kann ich Dir nicht sagen, was bei Dir nicht stimmt, denn ich kenne wir bereits erwähnt ja Dein Board nicht.

Verfasst: 30.04.2007 10:01
von Overhead
@ oxpus

Wenn ich eine Clean page_header.php nehme (unangetastet aus Original) dann kommt keinerlei Fehler beim Aufruf von Benutzernamen finden, sobald ich die Modzeilen einfüge und ein reload mache kommt beim klicken auf Benutzernamen finden der besagte SQL Fehler - da in beiden Fällen unmittelbar die page_header.php abgearbeitet wird, scheint der Fehler zumindest eingrenzbar zu sein.

Die User-ID und die Session-ID sind auf jeden Fall in der DB vorhanden - wenn nun aber aus der (gemoddeten) page_header.php die Daten abgerufen werden kommen sie vom Server nicht mehr zurück und es kommt folgerichtig zur Ausgabe des DIE....

wenn eine ungemoddete pgae_header.php die Daten abruft werden sie vom Server zurückgeschickt (warum???) und die page_header.php wird vollständig abgearbeitet (was wie ich ja weiss nicht unbedingt darauf schließen läßt, dass kein Fehler vorhanden ist, sondern nur, dass eiegentlich die page_header.php fehlerfrei ist - Fehler können sich ja an ganz anderer Stelle bei anderer Gelegenheit auswirken).
denn ich kenne wir bereits erwähnt ja Dein Board nicht.
Nicht ganz richtig - schau mal in Diene PN Box dort hattest Du am 03.04.2007 ein paar PN mit mir ausgetauscht...

cu Overhead