Problem bei Datensatz Updaten

Valendar

Grünschnabel
Hallo,
ich habe ein kleines Problem und zwar lade ich Datensatz in ein Formular um diesen Datensatz editieren zu können. Leider lädt er mir in die Text Felder nur das erste Wort also nach dem ersten Leerzeichen ist Schluss, habe leide keine Ahnung warum. Könnt ihr mir Bitte helfen?

Das ist der Link zur übergabe
PHP:
<a href='bearbeiten.php?id=$row[id]'><img src=\"button/edit.gif\" alt=\"Bearbeiten\" border=\"0\" /></a>

Code für das Formular
PHP:
<?php 
	include ("include/config.php");

	if(!isset($_GET["action"])) $_GET["action"] = ""; 
	$id = $_GET["id"]; 
	
$tabelle ="beschreibung";

	$dbanfrage = "SELECT * from $tabelle WHERE id = '$id'";
	$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);
	
	$row = mysql_fetch_array ($result);

	print ("<form action=update.php?id=$row[id] method=post accept-charset=\"utf-8\"><input name=array[id] type=hidden value=$row[id] />
<table border=1 width=500px align=center>
	<tr><td>Titel</td><td><input type=text name=array[titel] size=20 value=$row[titel] /></td></tr>
	<tr><td>Autor</td><td><input type=text name=array[autor] size=20 value=$row[autor] /></td></tr>
	<tr><td>Verlag</td><td><input type=text name=array[verlag] size=20 value=$row[verlag] ></td></tr>
	<tr><td>Beschreibung</td><td><textarea name=array[beschreibung] rows=5 cols=40  />$row[beschreibung]</textarea></td></tr>
	<tr><td>&nbsp;</td><td><input type=submit name=submit value=Eintragen /></td></tr>
</table>
</form>");

	mysql_close ($dbverbindung);
?>
 
Ich würde dir mal empfehlen, einen vernünftigen Browser zu benutzen und mit dem den ausgegebenen Quelltext anschauen ;-) z.B. Firefox würde dir einiges rot anstreichen....

Diese Sache hier macht dir überall Probleme, du solltest dir das generell angewöhnen:
HTML:
<td>Titel</td><td><input type=text name=array[titel] size=20 value=$row[titel] /></td>
Da du um keinen der Werte Anführungszeichen machst, erkennt der Browser nur, dass das erste Wort (also alles vor dem ersten Leerzeichen) zu dem Attribut gehört.
Wenn jetzt $row[titel] z.B. den Inhalt "Problem bei Datensatz Updaten" hat, dann würde die ganze Zeile so aussehen:
HTML:
<td>Titel</td><td><input type=text name=array[titel] size=20 value=Problem bei Datensatz Updaten/></td>
Wo der Browser dann "Problem" als Value des Input-Felds nehmen würde, und für "bei", "Datensatz" und "Updaten" ein unbekanntes Attribut erkennen würde.
Mach einfach überall (und wirklich überall, ist immer besser!) Anführungszeichen rum, dann sieht das ganze so aus:
HTML:
<td>Titel</td><td><input type="text" name="array[titel]" size="20" value="$row[titel]" /></td>
Dann funktioniert die ganze Sache auch ;-)
 
Zurück