Seite 1 von 1

Benutzer administrieren

Verfasst: 14.03.2008 17:30
von matteovice
Hallo,

bin auf phpBB3 umgestiegen. Soweit läuft mein Board ganz gut.

Ein Problem gibt es aber.

Ich habe einige "Benutzerdefinierte Profilfelder" eingefügt.
Gehe ich über das Benutzerprofil auf "Benutzer administrieren" und danach unter der "Auswahl" auf "Profil" (und nur hier), so erscheint folgende Fehlermeldung:

Allgemeiner Fehler
SQL ERROR [ mysql4 ]

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 'AND l.field_id = f.field_id ORDER BY f.field_order' at line 6 [1064]

SQL

SELECT l.*, f.* FROM phpbb_profile_lang l, phpbb_profile_fields f WHERE f.field_active = 1 AND l.lang_id = AND l.field_id = f.field_id ORDER BY f.field_order

BACKTRACE


FILE: includes/db/mysql.php
LINE: 158
CALL: dbal_mysql->sql_error()

FILE: includes/functions_profile_fields.php
LINE: 66
CALL: dbal_mysql->sql_query()

FILE: includes/acp/acp_users.php
LINE: 1227
CALL: custom_profile->generate_profile_fields()

FILE: includes/functions_module.php
LINE: 471
CALL: acp_users->main()

FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()


Danach habe ich alle aufgeführten Dateien in den Originalzustand zurückversetzt, ebenso die Datenbank in den entsprechenden Bereichen.
Dies brachte keine Abhilfe.

Ich vermute den Fehler in der includes/functions_profile_fields.php.

Der entsprechende Passus:


$sql = 'SELECT l.*, f.*
FROM ' . PROFILE_LANG_TABLE . ' l, ' . PROFILE_FIELDS_TABLE . " f
WHERE f.field_active = 1
$sql_where
AND l.lang_id = $lang_id
AND l.field_id = f.field_id
ORDER BY f.field_order";
$result = $db->sql_query($sql);


Allerdings bin ich völlig unbedarft und kann dort keinen Fehler finden.

MfG

Matthias

Verfasst: 16.03.2008 15:13
von matteovice
Hallo,

obwohl ich keine Ahnung davon habe, habe ich die Lösung durch probieren gefunden.

Ich habe die Originaldatei wie folgt abgeändert (roter Bereich).



$sql = 'SELECT l.*, f.*
FROM ' . PROFILE_LANG_TABLE . ' l, ' . PROFILE_FIELDS_TABLE . " f
WHERE f.field_active = 1
$sql_where
AND l.lang_id = l.lang_id
AND l.field_id = f.field_id
ORDER BY f.field_order";
$result = $db->sql_query($sql);

Was mich wundert, dass dies noch niemandem aufgefallen ist bzw. noch niemand diesen Fehler hatte. In allen mir vorliegenden Originaldateien (auch Englisch) wird der Passus wie im ersten Posting gezeigt dargestellt.

Gruß

Matthias