Seite 1 von 1

Warum keine Änderung der Feldkennung möglich?

Verfasst: 12.05.2012 12:18
von Tobias Claren
Hallo.

Wenn ich Profilfelder erstelle kann ich die Feldkennung später nicht mehr ändern.
Mir ist bewusst, dass dies nur ein interner Name ist, und den niemand außerhalb sieht.
Aber es kann ja sein, dass man für die persönliche Ordnung evtl. mal durch weitere ähnliche Felder das Bezeichnungssystem vereinheitlichen will.
Z.B. wenn man zuvor "Berufe" hatte, und dann mehrere Felder mit Berufsgruppen daraus machen will.
Dann wird evtl. aus "Berufe" "Lehrberufe", "Medizinische Berufe" usw..
Oder "Medizinische Berufe (Fachbegriffe)" und "Medizinische Berufe (Umgangssprache) <= Ich sehe keine andere Möglichkeit um in Profil-Suche-Mods zu verhindern das ein nach einer Person suchender Nutzer der "Kinderarzt" (oder Kinderheilkunde) sucht aufgibt, wenn er mit "Pädiatrie" Erfolg haben würde. In Browsern kann man ja höchstens schnell die ersten Buchstaben tippen bis man das Wort hat (falls vorhanden), aber wenn "Pädiatrie" in Form von "Kinderarzt (Pädiatrie)" vorkommt, würde es nicht gefunden. Beides eintragen wäre auch schlecht, da man dann keine einheitlich bezeichnete Anzahl an Nutzern mehr hat (diese per Such-Mod unter einem Begriff findet). Falls es dafür eine Lösung gibt, würde ich ein eigenes Thema dafür eröffnen.

Ich frage hier auch wieso das >nicht< geht, weil ich die Namen testweise im phpMyAdmin änderte (warum gibt es eigentlich field_name UND field_ident für diesen einen Namen?), und es scheint keinen Fehler im Board zu geben.
Daher ist es unverständlich wieso das in den Änderungsoptionen nicht auch ein änderbares Feld ist.


Grüße

Re: Warum keine Änderung der Feldkennung möglich?

Verfasst: 12.05.2012 12:42
von Miriam
Tobias Claren hat geschrieben:...

Ich frage hier auch wieso das >nicht< geht, weil ich die Namen testweise im phpMyAdmin änderte (warum gibt es eigentlich field_name UND field_ident für diesen einen Namen?), und es scheint keinen Fehler im Board zu geben.
Daher ist es unverständlich wieso das in den Änderungsoptionen nicht auch ein änderbares Feld ist...
Es gibt einen Fehler, Du hast ihn nur noch nicht gesehen.

In der Tabelle phpbb_profile_fields_data gibt es jeweils eine Spalte, die den Eintrag in der Spalte field_ident aus der Tabelle phpbb_profile_fields widerspiegeln. Wenn Du das Feld z.B. beim Erstellen meine_id genannt hast wird daraus in der phpbb_profile_fields_data die Spalte pf_meine_id.
Wenn Du also eine Änderung im Profil vornimmst, wird Dir ein Fehler angezeigt:
  • Code: Alles auswählen

    SQL ERROR [ mysqli ]
    
    Unknown column 'pf_meine_id' in 'field list' [1054]
    
    SQL
    
    UPDATE phpbb_profile_fields_data SET `pf_meine_id` = '12' WHERE user_id = 2
    
    BACKTRACE

Re: Warum keine Änderung der Feldkennung möglich?

Verfasst: 12.05.2012 14:23
von Tobias Claren
OK, wenn ich also in beiden Tabellen diese Änderungen vornähme (STRG+F fände ja alle Stellen), würde das nicht geschehen.

Wenn es grundsätzlich so einfach ist, bliebe die Kernfrage warum man auf die Änderungsmöglichkeit verzichtet hat...
Szenarien warum man das ändern will, sind ja nicht abwegig oder selten.

Denn ich kann ja wohl nicht einfach ein Feld löchen, und eines neu erstellen, ohne die Daten zu verlieren.
Im Test gab es auch keinen Hinweis dass beim Löschen diese Daten verloren gehen (auch wenn mir das bewusst war).

Re: Warum keine Änderung der Feldkennung möglich?

Verfasst: 12.05.2012 22:51
von Miriam
Tobias Claren hat geschrieben:OK, wenn ich also in beiden Tabellen diese Änderungen vornähme (STRG+F fände ja alle Stellen), würde das nicht geschehen.
So ist es.
Du mußt dann aber die Spalte in der Tabelle phpbb_profile_fields_data mittels einer SQL Query umbenennen mit ALTER TABLE ... CHANGE .... Oder Du machst einen Dump der Tabelle, änderst den Spaltennamen mittels Suchen & Ersetzen, löschst die Tabelle und spielst das (geänderte) Backup wieder ein.

Re: Warum keine Änderung der Feldkennung möglich?

Verfasst: 13.05.2012 04:33
von Tobias Claren
Das sagt mir jetzt nichts.
Ist/war leider kein Schulfach...

Ich nahm an, dass wenn ich überall in der kompletten DB wo das verwendete Wort vorkommt dieses ersetze, es erledigt ist.

Oder gibt es dafür einen Mod? Ein Mod der nur für diese eine Fuktion da ist. Auch wenn die Existenz dieses Mod evtl. die Programmierer von phpBB3 evtl. beleidigen mag.....

Früher gab es auch noch die Möglichkeit DB-Backups im Forum hochzuladen. Dass das heute nicht mehr geht, deutet auch wieder auf gewollte Einschränkung hin.
Lädt man eine selbst manipulierte DB in den Store-Ordner, erscheint die auch nicht in der Liste der DB-Backups.
Man müsste doch tatsächlich ein DB-Backup machen, dann den Titel der Datei kopieren, das Backup löschen, die eigene Datei hochladen, und ihr dann den Namen des Backups geben.....

Ich kann so ein "Gitter vor der Kellertreppe" ja noch ein wenig verstehen, aber wenn dann unnötigerweise Änderungsmöglichkeiten fehlen (wenn man also tatsächlich solche Änderungen händisch vornehmen kann, MUSS das auch automatisiert gehen), die einen Laien zu solchen händischen Manipulationen (nach denen es Fehler geben könnte) herausfordern.....

Re: Warum keine Änderung der Feldkennung möglich?

Verfasst: 13.05.2012 09:17
von Miriam
Das mit dem Restore unter der Benutzung nicht von der Forensoftware erzeugter Backups, liegt wohl daran, daß sichergestellt werden soll, dass nicht aus Versehen Daten eingespielt werden, deren Struktur, dann nachher nicht mehr zum Forum passen. Und somit das Forum im Ganzen nicht mehr lauffähig ist.

Die Datei muß folgenden Dateinamensaufbau haben:
  • backup_<Unix-Zeitcode>_<16-stelliger zufälliger Code aus kleinen Buchstaben und Ziffern>.sql.<bz2 oder gz abhängig von der Komprimierung>
Das könnte dann so aussehen:
  • backup_1336893054_bd8321ebdab5a754.sql.gz
Du kannst aber immer noch Backups / Restores mit phpMyAdmin machen. Also an dem Forum vorbei. Das wäre dann die Vorgehensweise, die Du vorhast umzusetzen.
Oder Du benutzt MySQLDumper für besonders große Datenbanken.