Zum Inhalt springen

PHP Variable hochzählen


Empfohlene Beiträge

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')");

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

mir fallen mehrere moeglichkeiten ein.

a) du uebergibst in nem hidden field die anzahl, das waer am einfachsten

B) 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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()

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. :rolleyes:

Wieder was gelernt. :D

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...