Hi,
ich hoffe, dass wir hier noch ein paar Programmierer haben.
Ich, totaller PHP und MYSQL Anfänger, sitze gerade an einem Projekt. In dem soll folgendes realisiert werden.
In einem Formular kann der Nutzer unter anderem mehrere Textfelder ausfüllen und auch diverse Optionen aus einem
select wählen.
In den beiliegenden Code-Schnippseln befindet sich folgendes:
1. Das Formular wie es aussieht. Einmal Textfeld, einmal Select.
Code:
<form action="db_eingabe.php" method="post" name="formular" id="formular">
Name: <input type="text" name="fname" id="name" /><br />
<select name="ausstattung[]" size="3" multiple="multiple">
<option>Bad/WC</option>
<option>Dusche/WC</option>
<option>Telefon</option>
</select>
<input type="submit" name="submitbutton" id="eintragen" value="Abschicken" />
</form>
2. In der db_eingabe.php:
Der PHP-Code, wie ich das Textfeld in auslese...
Code:
if (isset( $_POST['submitbutton'] ))
{
// Maskierende Slashes aus POST entfernen
$_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;
// Inhalte der Felder aus POST holen
$fname = $_POST['fname'];
...
...und anschließend, nachdem ich mich mit der DB verbunden habe, die Befehle um in die DB zu schreiben.
Code:
...
$sql = "INSERT INTO tabelle (`fname`) VALUES ('" .$fname. "')";
mysql_query( $sql );
}
Für das Textfeld funktioniert das alles wunderbar. Mit dem Select überhaupt nicht. Wenn ich mit den gleichen Befehlen arbeite bekomme ich maximal ein r in die Datenbank geschrieben. Ich vermute das dies das r von "Array" ist. Wie auch immer.
Wie bekomme ich das Array, welches nach dem abschicken des Formulars entsteht und z.b. so (ausgabe durch echo "<pre>" .print_r( $_POST, true ). "</pre>") aussehen kann...:
Code:
Array
(
[fname] => abc
[ausstattung] => Array
(
[0] => Bad/WC
[1] => Telefon
)
)
... in die DB geschrieben und auch wieder ausgelesen?
Ob die Daten nun in eine Spalte eine Tabelle oder in eine eigene Tabelle geschrieben werden ist mir eigentlich egal. Die Ausgabe soll auch relativ simpel sein: Einfache Auflistung hintereinander weg, die einzelnen Optionen lediglich durch ein <br /> oder ein Komma getrennt.
Ich hoffe ihr versteht die Frage.
Gruß
Striker