Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
  Druckansicht

  [PHP+MYSQL] Daten aus einem Select-Auswahl in eine MYSQL-DB
Autor Nachricht
    BeitragVerfasst: 19.09.2008 01:25 
allgemeingebildete Kreatur
allgemeingebildete Kreatur
Benutzeravatar
Offline

Beiträge: 2235
Registriert: 01.10.2000 01:01
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


Nach oben
 Profil  
 

  re: [PHP+MYSQL] Daten aus einem Select-Auswahl in eine MYSQL
    BeitragVerfasst: 19.09.2008 08:39 
Moderator
Moderator
Benutzeravatar
Offline

Beiträge: 1533
Registriert: 19.04.2002 01:01
Wohnort: Ulm
Meines Wissens nach kannst du ein Array (zumindest so ohne weiteres) nicht sinnvoll in einer DB abspeichern.
Du könntest aber z.B. für jede Auswahlmöglichkeit ein eigenes Tabellenfeld anlegen; je nach Auswahl schreibst du dann z.B. 1 oder 0 rein.

Für deine Zwecke könntest du auch einfach dein Array mittels for-Schleife in einen String umwandeln (da kannst du die Elemente ja auch gleich fein mit "<br />" oder ", " trennen) und diesen in ein ganz normales Textfeld eintragen.

Da ich mit der ganzen Sache aber nur privat zu tun und ich mir das meiste auch selbst beigebracht habe, kann es natürlich auch noch elegantere Lösungen geben ;)

________________________
"Ich habe keinen Stil. Ich bin ich." - Helge Schneider


Nach oben
 Profil  
 

  
    BeitragVerfasst: 20.09.2008 12:58 
Co-Admin
Co-Admin
Benutzeravatar
Offline

Beiträge: 3349
Registriert: 18.12.1999 02:01
Wohnort: From Hell
Hi,

ja entweder in einem String, wie Moonwulf sagt, oder aber du hast für jeden Wert den du an deine db_eingabe.php schickst auch ein entsprechendes Feld in der Tabelle.

Code:
  $dbid = $_POST[dbid][$i];
  $monat = $_POST[monat][$i];
  $jahr = $_POST[jahr][$i];
  $datum = $_POST[datum][$i];
  $schicht = $_POST[schicht][$i];
  $ort = $_POST[ort][$i];
  $notizen = $_POST[notizen][$i];

   $result = MYSQL_QUERY("INSERT INTO $tabelle$dbuser (id, monat, jahr, datum, schicht, ort, notizen) VALUES ('$dbid', '$monat', '$jahr', '$datum', '$schicht', '$ort', '$notizen')") or die(mysql_error());

(lass dich von dem $i nicht irritieren. In meinem Forumlar kommen die Felder bis zu 31x vor, daher gibt es noch ein $i++.)

Für dein <select> musst du der <option> noch eine eindeutige identifikation verpassen, zB <option value="1">Bad/WC</option>.
Siehe dazu hier.


Dass du damit
Code:
[...]tabelle (`fname`) VALUES ('" .$fname. "')"; [...]

keine Probs hast, wundert mich ein wenig. ` ist eigentlich nicht geeignet. Entweder ' oder "


gruss

________________________
Bild
Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun.
Specs: knotenberlin.de/pc.html


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 21.09.2008 02:02 
allgemeingebildete Kreatur
allgemeingebildete Kreatur
Benutzeravatar
Offline

Beiträge: 2235
Registriert: 01.10.2000 01:01
Danke erstmal, ich schau mir das mal in ruhe die Tage an. Bin gerade auf der durchreise.

Zu den SQL MYSQL Anfragen: Die Anfragen hole ich mir aus phpmyadmin, so vermeide ich Tippfehler und Schreibarbeit und kann sicher sein, dass die Syntax stimmt. Ob nun also ` ' oder " kann ich nicht beurteilen. Allerdings hatte ich in anderen Foren das ` auch öfters gesehen. Scheint also nicht unüblich zu sein.


Nach oben
 Profil  
 

Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


  Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
RSS-Feed
Impressum und Kontakt
Style created by phpBB3 styles , ziola alveo akuna
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Optimized by SEO phpBB
Deutsche Übersetzung durch phpBB.de