Fehlermeldung weiß aber nicht wo er liegt

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
AK47
Mitglied
Beiträge: 114
Registriert: 08.01.2007 11:24

Fehlermeldung weiß aber nicht wo er liegt

Beitrag von AK47 »

Hallo

Habe folgende Fehlermeldung:

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysqli ]

Unknown column 'u.user_id' in 'on clause' [1054]

SQL

SELECT u.user_id, v.id as vid FROM phpbb_users u , phpbb_user_group ug LEFT JOIN phpbb_garage_vehicles v ON ( v.user_id = u.user_id AND v.main_vehicle = 1 ) WHERE u.user_type IN (0, 3) AND ug.user_pending = 0 AND u.user_id = ug.user_id AND ug.group_id = 5 ORDER BY ug.group_leader DESC, u.user_regdate ASC LIMIT 25

BACKTRACE

FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()

FILE: includes/db/mysqli.php
LINE: 205
CALL: dbal_mysqli->sql_query()

FILE: includes/db/dbal.php
LINE: 170
CALL: dbal_mysqli->_sql_query_limit()

FILE: memberlist.php
LINE: 1439
CALL: dbal->sql_query_limit()
Die memberlist.php ist in Ordnung
der Fehler kommt wenn man die Benutzergruppen (unten im Forum unter den usernamen) aufrufen will.

Welche Datei könnte das noch sein vermute mal nicht die memberlist sondern ne Datei von den groups.

Bitte um Hilfe

btw: gibt es im phpbb3 auch ne art datenbankwartung?
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Fehlermeldung weiß aber nicht wo er liegt

Beitrag von Dr.Death »

Hallo,

auch dafür ist die memberlist.php zuständig.

Der Fehler kommt wahrscheinlich durch einen fehlerhaften MOD Ein/Ausbau ( Garage MOD ).

Oder Du suchst mal die SQL Abfrage in der memberlist.php und setzt 2 runde Klammern um die beiden Tabellen aus der FROM Anweisung.


Beispiel:
Aus:
SELECT u.user_id, v.id as vid FROM phpbb_users u , phpbb_user_group ug LEFT JOIN phpbb_garage_vehicles ...
mach:
SELECT u.user_id, v.id as vid FROM (phpbb_users u , phpbb_user_group ug) LEFT JOIN phpbb_garage_vehicles ...
AK47
Mitglied
Beiträge: 114
Registriert: 08.01.2007 11:24

Re: Fehlermeldung weiß aber nicht wo er liegt

Beitrag von AK47 »

habe da folgendes

Code: Alles auswählen

// Get us some users :D
		$sql = "SELECT u.user_id, v.id as vid
			FROM " . USERS_TABLE . " u
				$sql_from
			LEFT JOIN " . GARAGE_VEHICLES_TABLE . " v
				ON (
					v.user_id = u.user_id AND v.main_vehicle = 1
				)
			WHERE u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")
				$sql_where
			ORDER BY $order_by";
		$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
und

Code: Alles auswählen

$sql = $db->sql_build_query('SELECT', array(
			'SELECT'	=> 'u.user_id, u.group_id as default_group, u.username, u.username_clean, u.user_colour, u.user_rank, u.user_posts, u.user_allow_pm, g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id as ug_user_id, v.id as vid',

			'FROM'		=> array(
				USERS_TABLE		=> 'u',
				GROUPS_TABLE	=> 'g'
			),

			'LEFT_JOIN'	=> array(
				array(
					'FROM'	=> array(USER_GROUP_TABLE => 'ug'),
					'ON'	=> 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . $user->data['user_id']
				)
				,array(
					'FROM'	=> array(GARAGE_VEHICLES_TABLE => 'v'),
					'ON'	=> 'v.user_id = u.user_id AND v.main_vehicle = 1'
				)
			),
bei dem unteren is etwas weiter oben nen komma vor dem array gehört das denn dahin?
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Fehlermeldung weiß aber nicht wo er liegt

Beitrag von Dr.Death »

Beim oberen mal ändern in:

Code: Alles auswählen

// Get us some users :D
      $sql = "SELECT u.user_id, v.id as vid
         FROM ( " . USERS_TABLE . " u
            $sql_from )
         LEFT JOIN " . GARAGE_VEHICLES_TABLE . " v
            ON (
               v.user_id = u.user_id AND v.main_vehicle = 1
            )
         WHERE u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")
            $sql_where
         ORDER BY $order_by";
      $result = $db->sql_query_limit($sql, $config['topics_per_page'], $start); 
AK47
Mitglied
Beiträge: 114
Registriert: 08.01.2007 11:24

Re: Fehlermeldung weiß aber nicht wo er liegt

Beitrag von AK47 »

du bist mein held aber was war jetzt falsch?
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Fehlermeldung weiß aber nicht wo er liegt

Beitrag von Dr.Death »

Nichts.

Ich habe nur 2 Runde Klammern um das

ALT:

Code: Alles auswählen

FROM tabelle1, tabelle2 LEFT JOIN
NEU

Code: Alles auswählen

FROM (tabelle1, tabelle2) LEFT JOIN
gemacht.

Manche Datenbankversionen haben ein Problem bei einer SQL Abfrage über mehrere Tabellen plus einem JOIN.
Die Runden Klammern gruppieren mehrere Tabellen und erleichtern dem JOIN die Arbeit ;-)

Das ist ein MySQL 5 Problem.
Das Script funktioniert einwandfrei auf MySQL 4.x

Eine GENAUE Erlärung findest Du im Referenz Handbuch von MySQL : http://dev.mysql.com/doc/refman/5.1/de/ ... joins.html
AK47
Mitglied
Beiträge: 114
Registriert: 08.01.2007 11:24

Re: Fehlermeldung weiß aber nicht wo er liegt

Beitrag von AK47 »

Danke

und da suche ich mir den wolf :D
Antworten

Zurück zu „[3.0.x] Mod Support“