[MySQL] Jeden DB-Eintrag einzeln änderbar per Formular (Idee eines Adminbereichs)

Alphawolf

Grünschnabel
Hallo liebe Community,

ich bin's mal wieder. :suspekt:

Ich habe eine Art Wunschliste geschrieben, in die man mittels Formular seinen Namen, den Wunsch und seine Email-Adresse eintragen kann. Ich habe es nun schon hinbekommen, diese Daten in die DB zu schreiben und auch wieder auszugeben. ;-) So weit, so gut:

PHP:
if(!empty($deinwunsch))
	{
	$deinname = $_POST['deinname'];
	$deinwunsch = $_POST['deinwunsch'];
	$bemerkung = $_POST['bemerkung'];
	$emailaddy = $_POST['email'];
	if(!mysql_query("INSERT INTO `wishlist` SET `name`='".$deinname."', `wunsch`='".$deinwunsch."', `bemerkung`='offen', `aktdatum`=NOW(), `addy`='".$emailaddy."' ")) 
	 die('Fehler! SQL-Befehl ist falsch (_post)'); 
	}
Jetzt schwebt mir aber eine Art Admin-Bereich vor, um sich nicht immer wieder in der DB anzumelden zu müssen. Es sollen also alle Einträge in Textareas ausgegeben werden, was ich auch hinbekomme.

JEDOCH soll sich hinter jeder Textarea ein Button befinden, der die jeweilige Textarea und somit den Eintrag in der DB aktualisiert, wenn etwas neues reingeschrieben wurde.
Das habe ich nun schon probiert, allerdings ändert er gleich alle Einträge des selben Feldes in der DB, wenn ich nur einen Eintrag ändere.

Daher dachte ich mir, ich muss IDs dynamisch vergeben für jede Textarea, leider weiß ich nicht wie das geht bzw. ob es noch eine andere Möglichkeit gibt.

Mein derzeitiger Code:
PHP:
if(!empty($bemerkung))
	{
	$bemerkung = $_POST['bemerkung'];
if(!mysql_query("UPDATE `wishlist` SET `bemerkung`='".$bemerkung."' WHERE `bemerkung`= 'offen' ")) 
	 die('Fehler! SQL-Befehl ist falsch (_post)'); 
	}
 
$sql = 'SELECT * FROM wishlist ORDER BY aktdatum desc';
 
	if(!$res_id = mysql_query($sql))
	{
	 echo "Fehler! SQL-Befehl ist falsch (Query)";
	}
 
	echo "<table border=\"0\" cellspacing=\"2\" cellpadding=\"3\" align=\"left\">";
	echo "<tr>";
	echo "<td style=\"border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:#AF1020\" width=\"110\"><SPAN class=\"text\"><b>Name</b></SPAN></td>";
	echo "<td style=\"border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:#AF1020\"><SPAN class=\"text\"><b>Wunsch</b></SPAN></td>";
	echo "<td width=\"400\" style=\"border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:#AF1020\"><SPAN class=\"text\"><b>Status</b></SPAN></td>";
	echo "</tr>";
	while ($test = mysql_fetch_array($res_id))
	{
	 echo '<tr>';
	 echo '<td width="120" valign="top"><SPAN class="text">» '.$test['name'].'</SPAN></td>';
	 echo '<td align="justify" valign="top"><SPAN class="text">'.$test['wunsch'].'</SPAN></td>';
	 echo '<td width="400"><textarea rows="2" name="bemerkung" style="border: 1px solid #FFD700;padding-left: 5 ;font-size: 12; color: #000000; background-Color: #FFD700;width:390px;">'.$test['bemerkung'].'</textarea></td>';
	 echo '</tr>';
	}
	echo "</table><BR><BR><BR>";
Ich habe mich an Euch gewandt, da ich hier gute Erfahrungen bisher gemacht habe und hoffe, dass ihr mir in irgendeiner Weise bei der Problemlösung helfen könnt! :)

LG
Oli
 
Zuletzt bearbeitet:
hi, du hast doch sicherlich einen eindeutigen Schlüsel für jeden Eintrag oder?
Und wenn du den bei deinem UPDATE-Befehl in der WHERE-Klausel mit angibst, sollte die ganze Geschichte eingentlich schon funktionieren
 
Hi, erstmal danke!

Sorry, aber wie meinst du das mit einem eindeutigen Schlüssel für jeden Eintrag? Meinst du damit, ich solle ein neues Feld erstellen, in das bei jedem neuen Eintrag eine neue ID geschrieben wird?
Wie aber wird bei jedem neuen Eintrag der Wert der ID automatisch erhöht?

LG
 
Hi, also ob du eine ID dafür nutzt oder etwas anderes, ist dir überlassen. Hauptsache ist, dass du ein Feld hast, an mit dem du jeden Datensatz in deiner Tabelle eindeutig identifizieren kannst.

Wenn du dafür eine ID nutzen willst, dann setzt dieses Feld als PRIMARY KEY. Um die ID automatisch hochsetzen zu lassen, kannst du bei MySQL auf Integer-Felder (kann sein, dass es auch nur für Keys gilt) die Option AUTOINCREMENT setzen.
Beispiele dafür gibts hier im Forum bzw. in der MySQL-Hilfe genug.
 
Zurück