phpbar.de logo

Mailinglisten-Archive

[php] mysql - ext. datatype defs

[php] mysql - ext. datatype defs

Mario Aeby php_(at)_phpcenter.de
Wed, 12 Dec 2001 23:17:29 +0100


hi,

da mir die von mysql bereitgestellten datentypen nicht ganz genügen (im
täglichen gebrauch haben sich einige weitere, - einen "layer" (?) höher
liegende - typen als tauglich bewiesen), experimentiere ich mit
php/mysql herum.

das ganze basiert dann auf zwei fixen tables (nennen wir sie
'fieldTypes' und 'fieldTypesTemplates'). mithilfe dieser soll das ganze
recht flexibel von statten gehen: in 'fieldTypes' weise ich einem feld
einer beliebigen tabelle der db einen type aus dem table
'fieldTypesTemplates' zu.

die tabelle fieldTypes ist fertigprogrammiert (administration), jetzt
mache ich mich an fieldTypesTemplates. ich stelle mir folgende felder
vor:

| id | templateName | templateInput | templateOutput | templateFormField
|

die ersten beiden sollten klar sein, 'templateInput' und
'templateOutput' sollen php-code enthalten, welcher auf den inhalt des
feldes angewendet werden.

templateFormField wird in einem späteren schritt dann gebraucht, um für
jedes table spezifische, dynamische eingabemasken zu gestalten.

werden daten aus einem spezifizierten feld ausgelesen, soll nun der
php-code ausgeführt werden. ich weiss jetzt aber nicht wirklich, wie ich
das machen will - habe zwei möglichkeiten ausgedacht:

a) eval(); vor dem aufrufen der eval-funktion wird oberhalb eine
eindeutig bestimmte variable gesetzt mit dem feldinhalt. diese variable
wird dann mit dem der eval-funktion übergebenen code "richtig"
verwurstelt.

b) ganze spalte des template-table wird in ein php-file geschrieben und
dann included. jeder definierte datentyp erhält eine funktion:

function <templateName>_[input|output] ($data;) {
	<templateInput>

	return data;
}

was findet ihr effizienter? und/oder kommen euch andere vorgehensweisen
in den sinn?

danke & grüsse
mario
--
mario aeby
stritenstrasse 47
3176 neuenegg

http://www.eMeidi.com


php::bar PHP Wiki   -   Listenarchive