Forular mit mehreren Zeilen die einzelnt in MySql eingetragen werden sollen

TsEnG

Mitglied
Hi,
undzwar habe ich ein großes problem ich weiß nich genau wie ich das beschreiben soll deshalb auch dieser lange Titel, doch hoffe ich das ihr es versteht.


Undzwar habe ich vor ein Formular zu "entwickeln" um für einen Verein Übungen in eine Mysql Datenbank zu schreiben. Da sich jeden Monat die Anzahl der Übungen ändert habe ich eine Seite geschaffen in der man in einem Formular die Anzahl der Übungen eingeben kann. Dieser Formular ist verlinkt mit einer 2. php seite.

Dort ist ein weiteres Formular wo man nun die Übungen eintragen kann.

Es gibbt 3 spalten ( Datum, Uhrzeit, Thema, Ausbilder )

anhand der anzahl der übungen des vorherigen Formulars erstelle ich durch eine For schleife mehrere Zeilen mit eingabe feldern.

Wie schaffe ich es nun Die Übungen in eine Mysql db einzutragen?
Das Problem ist halt das ich alles dynamisch eintragen muss da es ja sein kann das im 1. mona 5 übungen sind und im 2. monat 10.

folgendermaßen erstelle ich das 2. Formular durch eine Forschleife:

Code:
    for ($i=0; $i<$uebungen; $i++) 
	{
            echo"<tr>";
              echo"<td><input name=datum' type='text' size='10' maxlength='10'</td>";
              echo"<td><input name='uhrzeit' type='text' size='5' maxlength='5'></td>";
              echo"<td><input name='thema' type='text' size='45'></td>";
              echo"<td><input name='ausbilder' type='text' size='15'></td>";
            echo"</tr>";
    }

Danke im vorraus, an alle die mein Problem verstehen *g*
 
hallo

schau mal bei http://www.tutorials.de/tutorials199133.html ist von mir, aber da habe ich in meinem Quelltext eine auch eine Möglichkeit die Textfelder dynamisch mit Namen zu versehen, die Werte dann per POST weiterzugeben und später abtzfragen welche davon nun eigentlich gesetzt wurden sind um diese dann in der Datenbank einzutragen.
 
Schreibe dein $i ist ein verstecktes Feld und frage es per $_POST[feldname] ab. Dann weisst du wie viele Übungen eingegeben wurden.

Dazu solltest du aber deine Feldnamen um eine eindeutige Nummer ergänzen, zum Beispiel
PHP:
echo"<td><input name=datum".$i." type='text' size='10' maxlength='10'</td>";
Andernfalls sind die Namen nicht eindeutig sondern mehrfach vorhanden.
 
Was bringt mir dann das versteckt feld?

Und wie muss dann mein Insert befehl aussehen? ich müsste den insert befehl ja auch dynamisch generieren, da ich ja nicht weiß wieviel ich insern muss.
 
Das versteckte Feld sagt dir, wie viele Eingaben gemacht worden, bzw. wie viel Felder für die Eingabe erzeugt wurden. (man weiss ja nie, ob ein User sich nicht 100 Felder anlegen lässt, um dann nur 2 zu nutzen)

Ja, das muss auch dynamisch erfolgen. Kannst eine for-Schleife dann bis zum übergebenen Wert laufen lassen. Überprüfe aber vorher, ob die Eingaben != "" sind.
 
wieviele felder erzeugt werden weiß ich, das bekomme ich aus dem vorherigen Formular als Varibale.

Im vorherigen formular gibt der halt an wieviel er haben will.

Ich leite dann mit
Code:
<form action="dienstplan_insert.php">
weiter. Das Feld wo er die anzahl eingegeben hat habe ich ja scho als variable $uebungen

Ich habe jetzt ne schleife für den Insert befehl.
Code:
<?php
	for ($x=0; $x<$uebungen; $x++) 
	{
	mysql_query("INSERT INTO dienstplaene (datum, zeit, thema, ausbilder) VALUES ('$datum', '$zeit', '$thema', '$ausbilder') ")
  	 or die(mysql_error());
	 }

Wie kann ich PHP jetzt sagen das er die durchnummerierten felder insern soll?

VALUES ('$datum"$x"' .... geht irgendwie nich? ich muss ja auch an die values die nummer dranhängen
 
Zuletzt bearbeitet:
Versuchs mal so:
PHP:
for ($x=0; $x<$uebungen; $x++) {
$a = "Datum" . $x;
$datum = $_POST[$a];
$a = "Zeit". $x;
$zeit = $_POST[$a];
// usw. für die anderen Variablen, sofern die Zahl ($x) auch immer hinten dran hängt

$sql = "INSERT INTO dienstplaene (datum, zeit, thema, ausbilder) VALUES ('$datum', '$zeit', '$thema', '$ausbilder')";
mysql_query($sql);
}
 
Jap das klappt wunderbar.

Danke Olly für deine hilfe.
Auch nen dank an nemo1980. ( Bin mit deinem Quelltext zwar net klar gekommen, aber tipps sind immer gut)
 
Zurück