Dopplungen in der MySQL Tabelle

Maxm123

Mitglied
Ich habe mir dieses Script gebastelt:
PHP:
//Verbinden zu Datenbank
$link = mysql_connect("localhost","web2","****")

             or die("Verbindung zum Server fehlgeschlagen.". mysql_error());



//Datenbank nutzen



$db_selected = mysql_select_db('usr_web2_2', $link)

   or die ("Kann die Datenbank usr_web2_2 nicht benutzen :". mysql_error());



$sql = "SELECT Ordner FROM Upload_Ordner";



$result = mysql_query($sql)

   or die('Ungltige Abfrage: ' . mysql_error());

$aordner = mysql_fetch_object($result);
$ordnerza = $aordner->Ordner;

$bildsurl = 'http://img.dj-max-mueller.de/gallerie/$ordner/';
$thumb = "/thumb/";


$ordner = "../../../images/gallerie/$ordnerza/";
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
    if($file != "." && $file != "..") {
        if(is_dir($ordner."/".$file)) {
            echo "/".$file."<br/>";
        } else {
            // kompletter Pfad
$sql2 = "INSERT INTO gallerie_$ordnerza (ID,Bildname,BildURL,BildThumbURL)VALUES ('null','".$file."','".$bildsurl.$file."','".$bildsurl.$thumb.$file."')";

$result = mysql_query($sql2);
        }
    }
}
closedir($handle); 

if (!$result) {
    die('Ungültige Abfrage: ' . mysql_error());
}

else
{
echo "Datenbank aktualisiert.<br><br>";
}

mysql_close($link);

Davor uploade ich dir Bilder in den Ordner...so mein Problem ist wenn ich z.B. 5 Bilder hochgeladen habe dann trägt das Script die auch in die Tabelle ein. Wenn ich dann später aber z.B. 1 Foto hochladen und das in die Tabelle eintrage dann werden alle anderen Bilder auch WIEDER eingetragen und sind doppelt drin. Wie kann ich das verhindern?...ich weiß nicht so recht wie ich das anstellen soll

Danke schon mal :)
 
Zuletzt bearbeitet:
Moin,

du solltest bei Deinen Postings darauf verzichten deine Zugangsdaten zu veröffentlichen:

//Verbinden zu Datenbank
$link = mysql_connect("localhost","web2","web2RTCW123")

Das geht so nicht.

Du liest also alle Dateien aus dem Ordner ein und trägst diese dann in die DB.
Entweder benötigst du im Vorwege eine Anweisung, die prüft, ob das Bild in der DB bereits vorhanden ist oder Du verschiebst einfach die bereits eingetragenen Bilder in einen anderen Ordner, damit diese nicht noch einmal eingetragen werden können.

VG
 
oops hatte ich übersehen...wäre cool wenn du das auch aus deinem beitrag rausnehmen würdest...werde aber trotzdem das passwort ändern

ja das 2te ist natürlich eine gute Idee. Ich mach es so das ich die Bilder uploade dann in die DB eintrage mit dem Pfad die sie dann später haben und verschiebe sie dann in den anderen Ordner... :)
 
ich kämpfe jetzt seid knapp 1 1/2 h stunde mit dem copy() Befehl...es geht einfach nicht..ich habe dir dateien in einem ordner und wollte sie jetzt erst mal zum testen in dein Ordner "test" kopieren der sich in dem Ordner mit den Bilder befindet...
PHP:
$handle2 = opendir($ordner);
while ($file2 = readdir ($handle2)) {
    if($file2 != "." && $file2 != "..") {
        if(is_dir($ordner."/".$file2)) {
            echo "";
        } else {
		copy("$file2","test/$file2");
        }
    }
}
closedir($handle2);

Raus kommt dabei:
Code:
Warning: copy(2.jpg): failed to open stream: No such file or directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(3.jpg): failed to open stream: No such file or directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(4.jpg): failed to open stream: No such file or directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(5.jpg): failed to open stream: No such file or directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(Fluch der Karibik.jpg): failed to open stream: No such file or directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Die Rechte sind alles auf 777. Ich weiß nicht mehr was hier noch falsch sein soll.

Könnt ihr mir bitte helfen?
 
Also mein Code ist jetzt so:
PHP:
$handle2 = opendir($ordner);
while ($file2 = readdir ($handle2)) {
    if($file2 != "." && $file2 != "..") {
        if(is_dir($ordner."/".$file2)) {
            echo "";
        } else {
		chdir($ordner);
		copy($file2,"test/");
        }
    }
}
closedir($handle2);

Fehlermeldung:
Code:
Warning: copy(test/): failed to open stream: Is a directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 80

Warning: chdir(): No such file or directory (errno 2) in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(test/): failed to open stream: Is a directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 80

Warning: chdir(): No such file or directory (errno 2) in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(test/): failed to open stream: Is a directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 80

Warning: chdir(): No such file or directory (errno 2) in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(test/): failed to open stream: Is a directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 80

Warning: chdir(): No such file or directory (errno 2) in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(test/): failed to open stream: Is a directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 80

Warning: chdir(): No such file or directory (errno 2) in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 79

Warning: copy(test/): failed to open stream: Is a directory in /srv/www/web2/html/max-mueller/site/gallerie/admin/bilderhinzs3.php on line 80

Es funktioniert leider nicht...was kann man noch machen?
 
Versuch mal:
PHP:
$handle2 = opendir($ordner);
chdir($ordner);
while ($file2 = readdir ($handle2)) {
    if($file2 != "." && $file2 != "..") {
        if(is_dir($file2)) {
            echo "";
        } else {
        copy($file2,"test/$file2");
        }
    }
}
closedir($handle2);
 
Zurück