Function Variablennamen nutzen

Sasser

Erfahrenes Mitglied
Hallo!

Ich baue einen Adminbereich, in welchem man verschiedene Sachen ändern und speichern kann. Die <INPUT> Felder heissen genauso wie `name` in der Datenbank und dazu soll in `content` der geänderte Inhalt geschrieben werden.

Ich möchte nun eine Function bauen, die man einfach mit verschiendenen Variablen nutzen kann. Also so:

PHP:
funtion save(#alle Variablen die geschickt werden#)
{
foreach (#Variable die geschickt wird AS $content)
{
### Speichern ###
}
}

Wie kann man aber unterschiedlich viele Variablen an die Funktion schicken und diese dann in die DB schreiben?
 
[phpf]func_get_args[/phpf]
[phpf]func_get_arg[/phpf]
[phpf]func_num_args[/phpf]

Die sollten dir da weiterhelfen.
 
Ich habs jetzt so gemacht:

PHP:
function save()
{
$save = func_get_args();
foreach ($save as $name)
{
$db = connect_db();
mysql_query("UPDATE config SET `content` = '$content' WHERE `name` = '$name'", $db);
mysql_close($db);
}
}

Aber wie lese ich nun die Variable aus?
 
Hi,

was Du brauchst, sind Spalte/Wert-Paare. Deshalb würde ich das nicht über beliebig viele Funktionsparameter machen, sondern ein assoziatives Array übergeben, das Du dann kurz und schmerzlos mit

PHP:
foreach($args as $column => $value)

durchlaufen kannst.

LG
 
Also er versucht was zu speichern allerding bekomme ich den Error:

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 's und Nutzungsbedingungen gilt das Recht der Bundesrepublik Deutschland. Soweit ' at line 1

PHP:
function save()
{
$args = func_get_args();
foreach ($args as $column => $value)
{
$db = connect_db();
mysql_query("UPDATE config SET `content` = '$value' WHERE `name` = '$column'", $db) or die(mysql_error());
mysql_close($db);
}
}
 
Hi,

nach einem halben Jahr könntest Du aber allmählich mal wissen, was man in so einem Fall macht.

Lass Dir die zusammengesetzte Abfrage ausgeben und schau, was da falsch ist. Tipp: Maskieren

LG
 
Naja egal...

Werde ich mir morgen nochmal anschauen!

Mittlerweile habe ich es so gemacht und mir damit die ganze DB geleert:

PHP:
$save = array("starttext" => $starttext, "info" => $info, "rules" => $rules, "impressum" => $impressum);
save($save);

Funktion:

PHP:
function save($save)
{
foreach ($save as $column => $value)
{
$db = connect_db();
mysql_query("UPDATE config SET `content` = '$value' WHERE `name` = '$column'", $db);
mysql_close($db);
}
}

Warum auch immer die DB geleert wurde ... :mad:
 
Zurück