|
#1
|
|||
|
|||
|
Bin schon leicht am Verzweifeln, vielleicht kann mir ja einer von euch weiterhelfen. Ich habe eine Kursliste und eine Teilnehmerliste. In der Teilnehmerliste stehen neben dem Namen noch jeweils Felder zu jedem Kurs. Die Tabelle wird jedesmal erweitert, wenn man einen neuen Kurs einträgt. Beim Teilnehmer soll man nun per Radiobutton pro Kurs anklicken können, ob er teilgenommen hat oder nicht. Dadurch dass die Felder erweitert werden, hole ich mir das aus der Tabelle und gebe es im Formular mit einer while-Schleife aus. Aber wie kriege ich das jetzt in die Datenbank? Wenn ich das übermittle, dann kann ich ja keine vordefinierten Variablen angeben und es ist ja auch keine vordefinierte Zahl von Kursen da. Die Fragen sind, wie kann ich die Daten aus der While-Schleife (im Formular) wieder auslesen, dass ich sie in der oberen If-Schleife nutzen kann und wie verpacke ich das dann in den Insert-Befehl? Die zwei Variablen, wo ich die Namen kenne, sind ja kein Problem, aber wie macht man das mit Variablen, wo ich den Namen nicht kenne bzw die sich ändern können im Namen und vor allem bei der Anzahl? Vielleicht weiß ja jemand Rat? :-) Hier ist mal der Code: PHP Quellcode:
<?PHP
include('db.inc.php'); if (isset ($_REQUEST['submit'])) { $name = $_REQUEST['name']; $fields = $_REQUEST['fields']; //Hier fehlen die restlichen Variablen ? $query = " insert into teilnehmer (ID, NAME) "; $query .= " values ('','$name', /Hier fehlen die restlichen Inserts?)"; $result= mysql_query($query,$con); mysql_close(); } // Datensätze aus der Datenbank auslesen (Teilnehmer-Tabelle) $query_tn = "select * from teilnehmer"; $result_tn = mysql_query($query_tn,$con); $fields = mysql_num_fields($result_tn); $fields = $fields-2; // Datensätze aus der Datenbank auslesen (Kurs-Tabelle) $query_ku = "select CODE from kurse"; $result_ku = mysql_query($query_ku,$con); ?> <HTML><HEAD><TITLE> Kurse </TITLE></HEAD><BODY> <form action="<?PHP echo $_SERVER['PHP_SELF'] ?>" method="post" name="Kurse"> <table> <tr> <td colspan="3">Neuer Teilnehmer:</td> </tr> <tr> <td>Name:</td> <td><input type="text" name="nick"></td> </tr> <tr> <td>Nr</td> <td>Code</td> <td>Teilnahme</td> </tr> <?PHP $i = 1; while($row = mysql_fetch_row($result_ku)) { echo "<tr>"; echo "<td>$i</td>"; echo "<td>$row[0]</td>"; echo "<td><input type=\"radio\" name=\"$row[0]\" value=\"J\"> Ja <input type=\"radio\" name=\"$row[0]\" value=\"N\"> Nein</td>"; echo "</tr>"; $i++; } ?> <tr> <td colspan="3"> <input type="hidden" name="fields" value="<?PHP echo $fields ?>"> <center><input type="submit" name="submit" value="Eintragen"></center></td> </tr> </table></form></BODY></HTML> |
|
#2
|
|||
|
|||
|
Du könntest die Anzahl der Datensätze im Array $_POST ermitteln und dann die Ausgabe ab dem dritten vorhanden Datensatz in das SQL-Statement schreiben...
__________________
Gary ============================= Schreie nach Besserem, bis du es auch erhältst. Das noch Bessere verabschiedet sich rechtzeitig vor deinem Lärm. © Martin Gerhard Reisenberg (*1949) |
|
#3
|
|||
|
|||
|
Jo danke :-) Aber mein Problem ist: wie mache ich dem $query klar, wieviele Datensätze er aufnehmen soll.
Es kann ja von mal zu mal verschieden sein, dass er $query = " insert into teilnehmer (ID, NAME) "; $query .= " values ('','$name','eintrag1','eintrag2','eintrag3')"; und beim nächsten mal $query = " insert into teilnehmer (ID, NAME) "; $query .= " values ('','$name','eintrag1','eintrag2','eintrag3','eint rag4,'eintrag5')"; ich kann ja in der variablen $query keine schleife ablaufen lassen, die mir je nach bedarf die vorhandene anzahl anzeigt. es soll praktisch das ergebnis einer for-schleife in eine variable geschrieben werden, nur wie mache ich das? per echo den string ausgeben ist ja kein problem, aber wie krieg ich das in die variable? PHP Quellcode:
$gesamt = ergebnis aus for-schleife (?)
for ($a=1;$fields<=5;$a++) { echo ",'".${(eintrag).$a}."'"; } |
|
#4
|
|||
|
|||
|
Deine Datenbankstruktur ist falsch.
"Die Tabelle wird jedesmal erweitert, wenn man einen neuen Kurs einträgt." ist, sorry, völlig daneben. Du brauchst eine Tabelle Teilnehmer, eine Tabelle Kurse und eine dritte Tabelle in der du mit Teilnehmer-ID und Kurs-ID erfasst, welcher Teilnehmer welchen Kurs belegt. So wie du das jetzt hast, wirst du immer Schwierigkeiten haben und die Kunstkniffe, die du anwenden musst, werden immer komplizierter.
__________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe. René Descartes |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
|
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| variablenProblem | Uschi | PHP | 0 | 13.05.2005 10:36 |
| Variablenproblem?! | whiskey | PHP | 3 | 04.10.2004 21:42 |
| Variablenproblem | JanM | PHP | 8 | 28.08.2004 00:01 |
| Variablenproblem | Thomson87 | PHP | 1 | 17.03.2004 01:05 |
| Variablenproblem | Tobias Hutterer | PHP | 1 | 01.01.1970 01:00 |