variablenname in variable speichern (dynamische variablen)
andi_b
- php
moin,
habe gerade das problem einer (halbwegs) generischen auswerung von formularen. jetzt habe ich schon mit freude 'dynamische variablen' nachgelesen, womit folgende möglich ist:
$vari = "test";
$$vari = "na wo bin ich denn?";
//$test == "na wo bin ich denn?"
jetzt möchte ich aber gern den ganzen spass rückwärts, um einen variablenname mit der existenz einer tabellenspalte zu vergleichen.
pseudo: if(exist(table.$nameDerVariable)){
//einfügen
}else{
//spalte anlegen
}
ist das schlüssig? und geht das denn?
danke freunde der 7-tage woche ;)
andi
Moin!
Du weisst, das die übergebenen Werte der Formuare in $_GET[] oder $_POST[], also bereits in je einem Array gespeichert sind? Die kannst Du mit den üblichen Methoden für Array's abfragen.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hello,
[...]
Du weisst, das die übergebenen Werte der Formuare in $_GET[] oder $_POST[], also bereits in je einem Array gespeichert sind? Die kannst Du mit den üblichen Methoden für Array's abfragen.
Was allerdings ein Submitbutton als Spalte in einer DB zu suchen hat, das entzieht sich meiner momentanen Vorstellungskraft.
Es gibt get_defined_vars() und das kann man dafür bestimmt nutzen.
Da könnte man dann alle Variablen mit einem bestimmten Präfix suchen oder solche, die zu einem bestimmten Array gehören. Das ist meine bevorzugte Methode.
Man nennt sowas auch Datenbündelung. Diese ermöglicht dann ganz bequem die Datenbindung zwischen verschiedenen Medien und Zeitabschnitten.
<input type="text" name="data[vorname]" size="30">
<input type="text" name="data[nachname]" size="30">
<input type="text" name="data[alter]" size="3">
<input type="radio" name="ctrl[gender]" value="male">
<input type="radio" name="ctrl[gender]" value="female">
<input type="radio" name="ctrl[gender]" value="unknown">
<input type="submit" name="btn[speichern]" value="Speichern">
Wenn man sich da dann später die Postdata anschaut
echo "<pre>";
print_r($_POST);
echo "</pre>";
dann sieht man den Nutzen sehr schnell.
die Unterscheidung zwischen ctrl[] und data[] liegt darin, dass Data direkt abgespeichert werden können, während Controls i.d.R. nur das weitere Verhalten des Scriptes steuern oder übersetzt werden müssen, also vordefinierte Datenwerte (die dann normalisiert werden müssten) referenzieren.
Liebe Grüße aus http://www.braunschweig.de
Tom
Moin!
Was allerdings ein Submitbutton als Spalte in einer DB zu suchen hat, das entzieht sich meiner momentanen Vorstellungskraft.
Wenn Du diesem einen Name gibst, dann wird der Name und der Wert des angeklickten übertragen. Anhand des Submit- Buttons können dann verschiedene Aktionen gestartet werden.
Wer sagt, daß Du dies in eine DB eintragen musst?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hello,
Was allerdings ein Submitbutton als Spalte in einer DB zu suchen hat, das entzieht sich meiner momentanen Vorstellungskraft.
Wenn Du diesem einen Name gibst, dann wird der Name und der Wert des angeklickten übertragen. Anhand des Submit- Buttons können dann verschiedene Aktionen gestartet werden.
Hier gings ja um die automatische Auswertung von Formularen. Meine Aussage sollte darauf hinweisen, dass Formulare üblicherweise mehr übertragen, als nur Datenwerte.
Eien DB-Tabelle aus den Namen der HTTP Name:Value Paare anzulegen, ahlte ich ohnehin für etwas gewagt.
Aber zu Übungszwecken ist schließlich (fast) alles erlaubt.
Liebe Grüße aus http://www.braunschweig.de
Tom