Bilderpfad in MySQL speichern

So in etwas könnte man das lösen.

HTML:
<input type="hidden" name="id" value="<?php echo $row['id']; ?>" />

Dann kannst du mit $_POST['id'] auf deine ID zugreifen.

Gruß
 
Jetzt funktioniert alles, vielen Dank für eure Hilfe!!

Ich habe es jetzt so gelöst:

PHP:
<?php
$host = "xxx";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="xxx";
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage = "SELECT * from $tabelle WHERE id = '$id' ";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);
while ($ausgabe = mysql_fetch_array ($result))
{
echo "	<form action=vereinupdatebild1.php?id=".$ausgabe['id']." target=_self method=post enctype=multipart/form-data>
		<input type=file name=datei id=datei><br> 
		<input type=submit name=submitbutton id=submitbutton value=Datei hochladen> </form>";
}
mysql_close ($dbverbindung)
?>
 
Nachdem ich nun alles umgebaut habe, funktioniert alles super. Allerdings habe ich noch ein Problem. Wenn ein Bild auf dem Server unter dem Dateinamen bereits besteht, wird es einfach überschrieben. Das darf aber auf gar keinen Fall passieren. Ich muss hier eine Abfrage einbauen, die überprüft, ob die Datei schon vorhanden ist, und wenn ja, dann muss eine Meldung ausgegeben werden, dass die Datei umbenannt werden muss, weil sie nicht überschrieben werden darf.

Geht das? Wie und wo muss ich das in meinem Script einbauen?

PHP:
<?php 
if (isset( $_POST['submitbutton'] )) 
{ 
    $Erlaubte_Dateiendungen = array( "jpg", "gif", "png" ); 
    $Dateiname_bereinigen = array( 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss', ' ' => '_' ); 
    if ($_FILES['datei']['size'] > 0) 
    { 
        $UploadDateiEndung = array_pop( explode( ".", strtolower( $_FILES['datei']['name'] ) ) ); 
        if (!in_array( $UploadDateiEndung, $Erlaubte_Dateiendungen )) 
        { 
            die( "Die angeh&auml;ngte Datei hat eine nicht erlaubte Dateiendung!" ); 
        } 
        $DateiNameNeu = strtr( strtolower( $_FILES['datei']['name'] ), $Dateiname_bereinigen ); 
        $umask_alt = umask( 0 ); 
		if (@move_uploaded_file( $_FILES['datei']['tmp_name'], "bilder/" .$DateiNameNeu ))  

        { 
            @chmod( $DateiNameNeu, 0755 ); 
            umask( $umask_alt ); 
        } 
        else 
        { 
            umask( $umask_alt ); 
        } 
    } 
} 
?> 
<?php
$bildpfad = xxx' .$DateiNameNeu; 

$host = "xxx"; 
$user = "xxx"; 
$password = "xxx"; 
$dbname = "xxx"; 
$tabelle ="xxx"; 
$dbverbindung = mysql_connect ($host, $user, $password); 
$dbanfrage = "UPDATE $tabelle SET datei2='$bildpfad' WHERE id = '$id' "; 
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {  
print ("<br>neues Bild wurde hochgeladen<br><br>");  
} else {  
print ("Es traten Probleme auf...<br/>");  
echo mysql_error();  
}   
mysql_close ($dbverbindung);          
?>
 
Zuletzt bearbeitet:
Sowas hier vielleicht

PHP:
if(file_exists($DateiNameNeu)) {
    die 'Die Datei ' .$DateiNameNeu. ' existiert bereits. Bitte benennen Sie die Datei um.';
}
 
äh.. ich will nicht nerven, aber wo bau ich das ein?

und wenn ich das einbaue, dann wird trotzdem der Datenbankeintrag geändert oder?
 
oh mann, stell den Beitrag doch einfach zu Stellenangebote gewerblich - vielleicht schreibt dir ja jemand die Seite.

Logischerweise solltest du das da hinschreiben, wo du den Dateinamen weißt. Und zwar unmittelbar danach. Und nein, wenn du den Dateinamen als erstes überprüfst und dann mit die aussteigst, dann wird auch nichts weiter ausgeführt - es sei denn du hast vorher schon dein update abgesetzt.
 
Zurück