Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP Variable hochzählen

Empfohlene Antworten

Veröffentlicht

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

}

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

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

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!

Hi

Also ich hab Möglichkeit B) ausprobiert und die funktioniert erstmal. Thx an alle. Wenn ihr noch nen besseren Vorschlag habt, bin ich dafür offen.

Noxy

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

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

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.