blubberblase
Mitglied
Guten Abend!
Ich möchte gerne Daten aus einer MySQL DB auslesen und pro Zeile einen Eintrag bearbeiten können. Dieser Eintrag enthält nur eine Zahl, welche dann als spätere Sortierung dient. Ich gehe alle Einträge der Datenbank durch und gebe sie in einer Tabelle aus. Das zu editierende Feld ist beschreibbar. Klicke ich nun auf den Update Button, erhalte ich wieder die Tabelle ohne jegliche Änderung. Lediglich die letzte Zeile wird gespeichert.
Das Auslesen ist nicht das Problem, aber das Ändern. Hier ist der Code:
Ich denke im UPDATE Teil muss der Wurm drin sein. Pro Zeile kann ich ja den Sort Eintrag ändern. Nun müsste ich dem UPDATE Befehl ja mitteilen, dass er alle Zeilen durchgehen soll - aber wie?
Ich hab das auch schon mit einem Array versucht: Also das ich dem Inputfeld für sort den Namen sort[<?=$adr['id']?> gebe und die While Schleife durch
ersetze...Das hätte den Vorteil, dass das Array der Sortierungswerte dann gleich mit den IDs indiziert ist...aber leider funktioniert das noch weniger .
Hat jemand eine Idee, Tipps oder sonstiges parat, damit ich das Teil zum Laufen bekomme?
Danke für Eure Hilfe!
Grüße
Ich möchte gerne Daten aus einer MySQL DB auslesen und pro Zeile einen Eintrag bearbeiten können. Dieser Eintrag enthält nur eine Zahl, welche dann als spätere Sortierung dient. Ich gehe alle Einträge der Datenbank durch und gebe sie in einer Tabelle aus. Das zu editierende Feld ist beschreibbar. Klicke ich nun auf den Update Button, erhalte ich wieder die Tabelle ohne jegliche Änderung. Lediglich die letzte Zeile wird gespeichert.
Das Auslesen ist nicht das Problem, aber das Ändern. Hier ist der Code:
PHP:
<?php
$sortieren = $_GET["sortieren"];
$mysqlhost="...";
$mysqluser="...";
$mysqlpwd="...";
$mysqldb="...";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql = "SELECT id, sort, firstname, lastname, text FROM jos_cdtastymonials ORDER BY sort DESC";
$monials = mysql_query($sql) or die("Anfrage nicht erfolgreich");
$anzahl = mysql_num_rows($monials);
echo "Anzahl der Datensaetze: $anzahl";
if ($sortieren == "submit") {
// Überprüfe Angaben
if ($Fehler != 1) {
while ($adr = mysql_fetch_array($monials)){
$sql2 = "UPDATE jos_cdtastymonials SET sort= '".$_POST['sort']."' WHERE ID = '".$_POST['id']."'";
mysql_query($sql2) OR die(mysql_error());
}
echo "Deine Angaben wurden bearbeitet.";
}
}
?>
<form action="sortierung_3.php?sortieren=submit" method="POST">
<table cellpadding="1" cellspacing="3" border="1">
<tr>
<td>ID</td>
<td>Sortierung</td>
<td>Vorname</td>
<td>Nachname</td>
<td>Bewertung</td>
</tr>
<?php
while ($adr = mysql_fetch_array($monials)){
?>
<tr>
<td><input id="id" type="text" name="id" maxlength="4" size="4" value="<?=$adr['id']?>"></td>
<td><input id="sort" type="text" name="sort" maxlength="4" size="4" value="<?=$adr['sort']?>"></td>
<td><?=$adr['firstname']?></td>
<td><?=$adr['lastname']?></td>
<td><?=$adr['text']?></td>
</tr>
<?php
}
?>
</table>
<input type="submit" name="submit" value="Update DB">
</form>
Ich denke im UPDATE Teil muss der Wurm drin sein. Pro Zeile kann ich ja den Sort Eintrag ändern. Nun müsste ich dem UPDATE Befehl ja mitteilen, dass er alle Zeilen durchgehen soll - aber wie?
Ich hab das auch schon mit einem Array versucht: Also das ich dem Inputfeld für sort den Namen sort[<?=$adr['id']?> gebe und die While Schleife durch
PHP:
foreach ($_POST['sort'] as $id => $sort) {
$sql = "UPDATE jos_cdtastymonials SET sort='$sort' WHERE ID='$id'";
mysql_query($sql) OR die(mysql_error());
}
ersetze...Das hätte den Vorteil, dass das Array der Sortierungswerte dann gleich mit den IDs indiziert ist...aber leider funktioniert das noch weniger .
Hat jemand eine Idee, Tipps oder sonstiges parat, damit ich das Teil zum Laufen bekomme?
Danke für Eure Hilfe!
Grüße