Bearbeiten von Datensätzen - Image

adapro

Grünschnabel
Hallo, ich habe ein Formular erstellt, mit dem ich neben Textinhalten auch eine Bilddatei hochladen kann und in einer MySQL-DB ablege (ich weiß um die Problematik mit BLOB-Dateien in MySQL – soll aber so bleiben). Funktioniert auch prima. Im nächsten Schritt kann ich die geladenen Dateien zur Überprüfung anzeigen lassen und ggf. ändern oder ganz löschen. Klappt auch soweit.

Nun kommt die Frage, wie kann ich die geladene Bilddatei gegen eine neue austauschen (auch in die DB)?

Hier der Code zur Eingabe in das Formular (als Auszug)

PHP:
<?php

if($sent)
{

if(!is_uploaded_file($neuedatei))
{$fehler="<center>Es wurde keine Datei hochgeladen.</center>";}

else
{

if($neuedatei_size>100000)
{$fehler.="<center>Die Datei ist zu gro&szlig;!</center>";}

if(!($neuedatei_type == 'image/pjpeg' OR $neuedatei_type == 'image/gif' OR $neuedatei_type == 'image/png'))
{$fehler.="<center>Der Dateityp ist nicht zul&auml;ssig!</center>";}

}

//Ende else keine Datei hochgeladen

if(!$fehler)
{
include('connect_i.php');
$datei=fopen($neuedatei,'r');
$data=addslashes(fread($datei,$neuedatei_size));
$sql="INSERT INTO $tabellenname (dateityp,datei) values ('$neuedatei_type',now(),'$data')";

if(!mysql_query($sql,$link))
{$fehler.="<center>Der Upload ist aufgrund eines Datenbankfehlers gescheitert.</center>";}
}

if($fehler)
{
 $meldung="<center>".$fehler."</center>";
}

else
{
echo "<p align=center>Die Daten wurden erfolgreich in die Datenbank eingetragen.p>";
}

echo $meldung;
}
if(!$sent)
{
?>

... und der Teil HTML mit dem Formular

Code:
<form action='<? echo $PHP_SELF; ?>' method='post' enctype='multipart/form-data'>
<input type="hidden" name="sent" value="1">
<table>
<tr valign="top">
  <td align="left" class="text" colspan="2">Die Bild-Datei ausw&auml;hlen (ggf. 'Platzhalter' laden)</td>
</tr>
<tr>
  <td align="left" colspan="2"><input type="file" name='neuedatei' size="54"><br><br></td>
</tr>
</table>

Das Script zum Ändern bzw. Löschen der Eingaben nur als Auszug:

PHP:
<?php
require('connect_i.php');

//Löschen eines Datensatzes
if($sent==1)
{

$sql = "DELETE FROM $tabellenname WHERE id=";
$sql.=$id;
@mysql_query($sql, $link);

}

//Speichern der neuen Werte
if($sent==2)
{

$sql = "UPDATE $tabellenname SET ";
$sql.= " kategorie = '$kategorie', ";
$sql.= " objekttyp = '$objekttyp', ";
$sql.= " beschreibung = '$beschreibung', ";
$sql.= " head = '$head', ";
$sql.= " adresse = '$adresse', ";
$sql.= " lage = '$lage', ";
$sql.= " lage1 = '$lage1', ";
$sql.= " info = '$info', ";
$sql.= " ort = '$ort' ";
$sql.= "WHERE id=";
$sql.=$id;
@mysql_query($sql, $link);

}

//Anzeigen des Formulars zum Bearbeiten eines Datensatzes
if($sent==3)
{

$sql = "SELECT * FROM $tabellenname WHERE id=";
$sql.=$id;
$result=@mysql_query($sql, $link);

?>

... und der Teil im Formular, zumindest als Auszug für die Texte (Bsp. Lage/Ort):

Code:
<form action='<?php echo $PHP_SELF; ?>' method='post'>
<input type="hidden" name="sent" value="2">
<input type="hidden" name="id" value="<?php echo mysql_result($result,0, 'id'); ?>">
<table>
<tr valign="top">
  <td align="left" class="text">Lage / Ort</td>
  <td align="left">
  <input type="text" name='ort' size="50" value='<?php echo mysql_result($result,0, 'ort'); ?>'></td>
</tr>
</table>
</form>

Wie kann ich nun die geladene Bilddatei austauschen in diesem Schema?
Danke für jede Hilfe!
 
Also ich hab das selber noch nie gemacht, aber würde das nicht reichen, wenn Du die neue Datei hochlädst und per UPDATE-SQL-Befehl in die Datenbank bläst?
 
Zurück