Noxy Geschrieben 15. August 2002 Geschrieben 15. August 2002 Hi Ich hab folgendes Problem: Ich will eine Eingabe machen (hier Softwarekeys), abhängig von der Zahl der Keys (steht in einer SQL Datenbank). Die eingegebenen Keys sollen dann wieder in die SQL Datenbank geschrieben werden. # Hier les ich die Keyzahl aus der Datenbank $keyzahl=mysql_result($res, 0, "keyzahl"); #Hier wird sooft eine Eingabe ausgegeben, wie Keys vorhanden sind, der Name(key$i) zählt auch richtig hoch (key1,key2,key3...) for ($i=1; $i<=$keyzahl; $i++) { echo " <table> <tr> <td width=50>Key $i</td> <td> <input size='20' maxlength='20' name='key$i'></td> </tr> </table> "; } Sooo aber nun kommts: Wie trage ich die Ergebnisse der Eingabe in eine SQL Datenbank ein? Ich weiss ja nicht wieviel key1,key2...keyn Variablen ich habe. Ich habs wieder mit ner for-Schleife probiert, aber wie kann ich die Variable key hochzählen? Ich hoffe ich hab mein Problem so geschildert, dass es verstanden wird Versuch, geht nicht, da $key$i ja eigentlich keinen Sinn macht (oder $($key$i)??) for ($i=1; $i<=$keyzahl; $i++) { mysql_db_query("software", "insert keyz (id, keywert) values ('$id', '$key$i')"); } Zitieren
beetFreeQ Geschrieben 15. August 2002 Geschrieben 15. August 2002 Hmm, du hast doch das $_POST-Array... - damit dürfte es wie folgt gehen: for ($i=1; $i<=$keyzahl; $i++) { mysql_db_query("software", "insert keyz (id, keywert) values ('$id', '$_POST[key$i]')"); } [/PHP] Hab's aber nicht getestet... Zitieren
Impulz Geschrieben 15. August 2002 Geschrieben 15. August 2002 Hi, mir fallen mehrere moeglichkeiten ein. a) du uebergibst in nem hidden field die anzahl, das waer am einfachsten du gehst durch und bildest ueber ${"key".$zahl} in einer schleife die variablen und ueberpruefst ob sie gesetzt sind. c) du gehst das POST Array durch und holst dir da alles raus was mit key beginnt. Ich wuerd eindeutig das erste nehme :-) Michael Zitieren
beetFreeQ Geschrieben 15. August 2002 Geschrieben 15. August 2002 Original geschrieben von Impulz a) du uebergibst in nem hidden field die anzahl, das waer am einfachsten Ne ne, das reicht so nicht. So hat er zwar die Anzahl der Schleifendurchläufe, kann die Variablen $key1 bis $keyn ja aber trotzdem nicht ansprechen... - er will ja in jedem Durchlauf eine der Variablen weiterspringen - das ist dann nur über deine Möglichkeit b oder das Array möglich... und da es eh sicherer ist, die globalen Variablen auszuschalten und nur mit den Arrays zu arbeiten, würd ich die Lösung bervorzugen! Zitieren
Noxy Geschrieben 15. August 2002 Autor Geschrieben 15. August 2002 Hi Also ich hab Möglichkeit ausprobiert und die funktioniert erstmal. Thx an alle. Wenn ihr noch nen besseren Vorschlag habt, bin ich dafür offen. Noxy Zitieren
Jaraz Geschrieben 15. August 2002 Geschrieben 15. August 2002 Original geschrieben von Noxy <input size='20' maxlength='20' name='key$i'></td> mysql_db_query("software", "insert keyz (id, keywert) values ('$id', '$key$i')"); Hallo, das oben musst du in etwa so schreiben: (Falls ich dich richtig verstanden habe.) <input size='20' maxlength='20' name='key[$i]'> mysql_db_query("software", "insert keyz (id, keywert) values ('$id', '$key[$i]')"); Gruß Jaraz Zitieren
beetFreeQ Geschrieben 15. August 2002 Geschrieben 15. August 2002 Original geschrieben von Jaraz Hallo, das oben musst du in etwa so schreiben: (Falls ich dich richtig verstanden habe.) <input size='20' maxlength='20' name='key[$i]'> mysql_db_query("software", "insert keyz (id, keywert) values ('$id', '$key[$i]')"); Gruß Jaraz Kann man wirklich Arrays über die Namen von Formularfeldern anlegen? Hätte ich jetzt nicht gedacht - wäre aber ziemlich super... Zitieren
begga Geschrieben 15. August 2002 Geschrieben 15. August 2002 Benutze einfach <input type="text" name="variable[]"> Du brauchst noch nicht einmal einen Index in das Array zu legen, sondern kannst dann im Skript einfach mit foreach über variable laufen. Um den Index kümmert sich PHP selbst... mysql_db_query ist deprecated und würde ich demnach nicht mehr benutzen. Benutze stattdessen lieber mysql_select_db() und mysql_query() Zitieren
Jaraz Geschrieben 15. August 2002 Geschrieben 15. August 2002 Original geschrieben von begga Benutze einfach <input type="text" name="variable[]"> Du brauchst noch nicht einmal einen Index in das Array zu legen, sondern kannst dann im Skript einfach mit foreach über variable laufen. Um den Index kümmert sich PHP selbst... Das wusste ich auch noch nicht. Wieder was gelernt. Gruß Jaraz Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.