Aus Formular ein Array generieren und in DB einfügen?

Gifty43

Erfahrenes Mitglied
Moin Zusammen,

Wieder mal ein Problem...:-)
Doch diesmal nicht gerade sehr einfach. Für die Cracks unter euch sollte sicherlich etwas dazu einfallen.

Ich habe für Top10-Charts (für Games) eine Tabelle in der DB erstellt. History brauch ich nicht, sondern will einfach nur die Charts eintragen/updaten können.
Die Tabelle hat deshalb nur zwei Spalten (cid, game)

cid -> Ist der Platz des Spiels (Es sind also ständig 10 Datensätze vorhanden)
game -> Hier wird der Name des Spiels drin gespeichert.

Ich benutze folgenden Code um mir auf die Editierseite die aktuellen Plätze mit den Titeln anzuzeigen:

Code:
<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data">
<table>
 
<?php
$charts_q = mysql_query("SELECT * FROM charts ORDER BY cid ASC LIMIT 10");
while($charts = mysql_fetch_array($charts_q)) {
 
echo'
<input type="hidden" name="cid" value="'.$charts["cid"].'">
<tr>
 <td>Platz '.$charts["cid"].'</td>
 <td><input name="name" type="text" size="58" value="'.$charts["game"].'"></td>
</tr>
';
 
}
?>
 
<input type="submit" name="submit" value="Abschicken">
</form>
 
<?php
if ($_POST['submit'] == "Abschicken") {
  $result = mysql_query("UPDATE charts SET game='".$_POST['game']."' WHERE cid= '".$_POST['cid']."'");
  echo'Successfully changed!';
}
?>

Doch wie kann ich das jetzt realisieren, dass er mir alle (10) Datensätze, welche ich im Array habe in die DB einträgt?

THX für jeden Input:)
 
Mit deinem Script generierst du 10 Inoutfelder mit dem gleichen Namen. Das kann nicht funktionieren. Am einfachsten wäre, wenn du die 10 Inputfelder z.B. cid[1] - cid[10] benennst. Darauf kannst du dann nämlich mit foreach drauf zugreifen und die Eingaben auswerten.
 
oder
HTML:
<input name="name[]" type="text" size="58" value="'.$charts["game"].'">

und die von tucker erwähnte foreach
 
Zurück