Daten von Formular in MySQL Tabelle schreiben

MisterMi

Erfahrenes Mitglied
Ich habe eine Formularseite die eine Auswahl zulässt:

PHP:
<form method="post" action="Ausgabe.php">
   <!-- Textfeld für ein Formular zur Eingabe des Namen-->
   <p>Gib bitte deinen Namen an: <input type="text" name="name" value="Name"></p>
    
     <!-- Checkboxen für Mehrfachauswahl -->
<select name="tor[]" size="50" multiple="multiple">
<option value="Manuel Neuer">Manuel Neuer - Bayern - 30000000</option>
<option value="Marc-André ter Stegen">Marc-André ter Stegen - Gladbach - 10000000</option>
<option value="René Adler">René Adler - Hamburg - 9000000</option>
<option value="Bernd Leno">Bernd Leno - Leverkusen - 9000000</option>
</select>

<select name="abwehr[]" size="50" multiple="multiple">
<option value="Philipp Lahm">Philipp Lahm - Bayern - 28000000</option>
<option value="Mats Hummels">Mats Hummels - Dortmund - 24000000</option>
<option value="Holger Badstuber">Holger Badstuber - Bayern - 22000000</option>
</select>

  <!-- Einbau des Submit Buttons zu abschicken des Formulars -->
<input type="submit" name="senden" value="Senden">
</form>

Nun wird das ganze ja übergeben und soll in meine Datenbank geschrieben werden über:

PHP:
<?php
$auswahl1 = $_POST['tor'];
$auswahl2 = $_POST['abwehr'];
$auswahl3 = $_POST['mittelfeld'];
$auswahl4 = $_POST['sturm'];
$Spieler = $_POST['Spieler'];

//Verbindung herstellen
$datenbank = mysql_connect("xxx.mysql", "xxx", "xxx") or die ("Verbindung fehlgeschlagen: ".mysql_error());
$verbunden = mysql_select_db("xxx",$db) or die ("Datenbank nicht gefunden oder fehlerhaft");

//Daten in DB speichern

for($i=0;$i<count($auswahl2);$i++)
{
 $sql_befehl = mysql_query("INSERT INTO Mirko (tor, abwehr, mittelfeld, sturm) VALUES ('$auswahl1', '$auswahl2', '$auswahl3', '$auswahl4')");

}
if($sql_befehl)
{ echo "Ihr Eintrag wurde hinzugefügt."; }

//Verbindung beenden
mysql_close($datenbank);
?>

Leider bekomme ich aber folgende Fehlermeldung und weiß nicht was falsch ist

Parse error: syntax error, unexpected T_STRING in /customers/b/3/5/mirkolinho.de/httpd.www/Ausgabe.php on line 2
 
Deine Variablen sind jeweils ein Array und kein String. Ergo kannst du nicht einfach so in dein INSERT übertragen.
Entweder entfernst du im HTML bei den Namen den [] oder du nimmst im PHP den ersten Eintrag des Arrays
 
PHP:
<?php
$tor = $_POST['tor'];
$abwehr = $_POST['abwehr'];

//Verbindung herstellen
xxx

// in String umwandeln
$tor = serialize($tor);

// schleife die alle Daten ausgibt
foreach($tor as $torwart) {

     mysql_query("INSERT INTO Mirko (Name) VALUES ('$torwart')");
}

//Verbindung beenden
mysql_close($datenbank);

?>
will er so nicht...
 
Zuletzt bearbeitet:
Sagt 'er' auch was dazu?
Wahrscheinlich will er dass du auch noch andere Felder abfüllst.

DU solltest dir mal überlegen wie du die Daten speichern willst.

Nehmen wir an, der User wählt das folgende aus.
tor: 2 Einträge. Er wählt den Hans und den Fritz
abwehr: 5 Einträge. Max, Robert, Hans, Fritz und Rolf

Sind das jetzt 2 Zeilen in der Tabelle? Oder 5 Zeilen? oder Eine Zeile?
Wie willst du das speichern?
 
"Warning: Invalid argument supplied for foreach() in /customers/b/3/5/mirkolinho.de/httpd.www/DatenbankIN.php on line 19 Warning: mysql_close() expects parameter 1 to be resource, null given in /customers/b/3/5/mirkolinho.de/httpd.www/DatenbankIN.php on line 25 "

Dann möchte ich einfach untereinander Hans, Fritz, Max, Robert usw haben, so dass man dann in der Tabelle alle 11 Spieler sieht.
 
Zuletzt bearbeitet:
Mach mir ein Beispiel wie die Tabelle abgefüllt sein soll. Nicht in Worten. Setz dich mal ans Excel und mach dir eine Beispieltabelle mit Beispieldaten. Denn bevor du nicht weisst wie du die Daten speichern willst musst du dir auch keine Gedanken machen wie sie in de Tabelle kommen. JEder Tipp den wir dir geben nützt da nicht.

Also, mach mal ein Beispiel der Speicherung
 
Für den Anfang würde reichen:

Name
Neuer
Dante
Badstuber
Gomez

Später wäre
Name Position Verein
Neuer Tor Bayern
Dante Abwehr Bayern
Badstuber Abwehr Bayern
Gomez Sturm Bayern

wünschenswert.
 
Im Array stehen derzeit ja Werte wie Neuer Badstuber Dante usw...

Die will ich jetzt untereinander in eine Tabelle die Mirko heißt und eine Spalte names "Name" hat speichern.
 
Zurück