Datenbankfeld lässt sich im textfeld nicht anzeigen
andi
- php
Hallo,
Ich habe nachfolgendes Eingabeformular. Wenn ich Datensätze ändern möchte, wird mir im Textfeld "Beschreibung" der in der Datenbank vorhandene Text aber nicht angezeigt. Das Typ in der Datenbank dieses Feldes ist BLOB. Was ist hier falsch?????
<?
include("datenbank.php");
if($Button)
{
if($id)
{
// Update
if(!empty($datei) and $datei!="none") {
$zieldatei=$id."_".$datei_name;
copy($datei,"upload/".$zieldatei);
mysql_query("update spielplan set titel='$titel', genre='$genre', beschreibung='$beschreibung', datum='$datum', upload='$zieldatei' where id=$id");
}
else
{
mysql_query("update spielplan set titel='$titel', genre='$genre', beschreibung='$beschreibung', datum='$datum' where id=$id");
}
}
else
{
// Insert
$result=mysql_query("insert into spielplan (titel, genre, beschreibung, datum) values ('$titel', '$genre', '$beschreibung', '$datum')");
$id=mysql_insert_id();
if(!empty($datei) and $datei!="none") {
$zieldatei=$id."_".$datei_name;
copy($datei,"upload/".$zieldatei);
mysql_query("update spielplan set upload='$zieldatei' where id=$id");
}
if($result)
{
echo "<div align="center">";
echo "Daten wurden erfolgreich gespeichert";
echo "</div>";
}
else
{
echo "Fehler: ", mysql_errno(),
": " . htmlentities(mysql_error()), ".\n";
}
}
unset($id);
unset($titel);
unset($genre);
unset($beschreibung);
unset($datum);
}
if($id) {
$result=mysql_query("select * from spielplan where id=$id");
while($row=mysql_fetch_array($result)) {
$id=$row["id"];
$titel=$row["titel"];
$genre=$row["genre"];
$beschreibung=$row["beschreibung"];
$datum=$row["datum"];
}
}
if ($delete)
{
$query_left =("DELETE FROM spielplan WHERE id = $id");
mysql_query($query) ;
echo "<div align="center">";
echo "Der Datensatz mit id $id wurde gelöscht!<br>";
echo "</div>";
}
?>
<style>
a:link {color:#ffcc00; text-decoration:none; font-family:arial,helvetica,sans-serif; font-size:9pt;}
a:active {color:#ffcc00; text-decoration:none; font-family:arial,helvetica,sans-serif; font-size:9pt;}
a:visited {color:#ffcc00; text-decoration:none; font-family:arial,helvetica,sans-serif; font-size:9pt;}
a:hover {color:#ffffff; text-decoration:none; font-family:arial,helvetica,sans-serif; font-size:9pt;}
td {font-family:arial,helvetica,sans-serif; color:#ffffff; font-size:9pt;}
</style>
<BODY BGCOLOR="#336699">
<!-- Beginn des Formulares -->
<FORM METHOD="post" ACTION="<? echo $PHP_SELF?>" enctype="multipart/form-data">
<div align="center">
<TABLE width="400" BORDER="0" CELLSPACING="1" CELLPADDING="3" bgcolor="#ffffff">
<tr>
<td colspan="2" align="center" bgcolor="#336699"><h3>Beschreibung</h3><br>Um einen neuen Datensatz anzulegen klicken Sie bitte unterhalb der Eingabemaske auf "Neuen Datensatz einfügen", füllen die Felder in der Eingabemaske aus und speichern.</td>
</tr>
<tr>
<td bgcolor="#336699"><b>Titel:</b></td>
<td bgcolor="#336699">
<INPUT TYPE="text" NAME="titel" SIZE="40" MAXLENGTH="50" VALUE="<? echo $titel?>">
</td>
</tr>
<tr>
<td bgcolor="#336699"><b>Genre:</b></td>
<td bgcolor="#336699">
<INPUT TYPE="text" NAME="genre" SIZE="40" MAXLENGTH="50" VALUE="<? echo $genre?>">
</td>
</tr>
<tr>
<td bgcolor="#336699"><b>Datum:</b></td>
<td bgcolor="#336699">
<INPUT TYPE="text" NAME="datum" SIZE="40" MAXLENGTH="50" VALUE="<? echo $datum?>">
</td>
</tr>
// Bei diesem Feld wird der Inhalt aus der db nicht angezeigt??
<tr>
<td bgcolor="#336699"><b>Beschreibung:</b></td>
<td bgcolor="#336699">
<textarea NAME="beschreibung" VALUE="$beschreibung" cols="40" rows="5"><? echo $beschreibung ?></textarea></TD>
</tr>
<tr>
<td bgcolor="#336699"><b>Bild:</b></td>
<td bgcolor="#336699">
<input type="file" name="datei" size="17">
</td>
</tr>
<tr>
<td bgcolor="#336699"> </td>
<td bgcolor="#336699">
<INPUT TYPE="hidden" NAME="id" VALUE="<? echo $id ?>">
<INPUT TYPE="submit" NAME="Button" VALUE="Speichern">
<input type="submit" value="Löschen" name="delete">
</td>
</tr>
</table>
<br><br>
<table width="400" cellspacing="1" cellpadding="3" border="0" bgcolor="#ffffff">
<tr>
<td bgcolor="#336699" align="center">
<a href="<? echo $PHP_SELF?>"><b>Neuen Datensatz einfügen</b></a>
</td>
</tr>
</table>
<br>
<table width="400" cellspacing="1" cellpadding="3" border="0" bgcolor="#ffffff">
<tr>
<td bgcolor="#336699" align="center"><b>Vorhandene Datensätze anzeigen</b></td>
</tr>
<?
$result=mysql_query("select * from spielplan");
while($row=mysql_fetch_array($result)) {
$id=$row["id"];
$upload=$row["upload"];
$titel=$row["titel"];
$genre=$row["genre"];
$beschreibung=$row["beschreibung"];
?>
<tr>
<td bgcolor="#336699"> <a href="<? echo "$PHP_SELF?id=$id"?>">
<? echo $titel ?> ändern</a>
</td>
</tr>
<? } ?>
</TABLE>
</div>
</FORM>
<textarea NAME="beschreibung" VALUE="$beschreibung" cols="40" rows="5"><? echo $beschreibung ?></textarea>
Zunächstmal gibt es "value" im textarea-Tag IMHO nicht, vielleicht verursacht das den Fehler?!
Lass $beschreibung mal vor diesem Tag mit echo $beschreibung."<br>\n"; ausgeben, um zu sehen, ob die Variable den wirklich "gefüllt" ist.
Inwieweit BLOB für den Fehler verantwortlich sein mag, kann ich leider nicht beantworten.
Hallo,
Inwieweit BLOB für den Fehler verantwortlich sein mag, kann ich leider nicht beantworten.
Nachdem PHP keine unterschiedlichen Typen von Variablen kennt, ist es wurscht. Kann höchstes mal zu Problemen kommen, wenn Variablen wieder in die Datenbank geschrieben werden und dann nicht mit dem Typ in der DB übereinstimmen (z.B. einen String in ein int-Feld oder so).
Grüße aus Würzburg
Julian