Doppelter Datenbankeintrag

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Doppelter Datenbankeintrag

    Hallo Leute,
    ich brauche mal Hilfe. Das Script unten includiere ich in ein Uploadscript. Ich möchte damit erreichen, dass jedes hochgeladenen Foto sofort in eine Datenbank eingetragen wird. In dieser Datenbank kann man dem Bild dann weitere Daten zurordnen. Leider wird jedes Bild dopplet eingetragen. Bilder die bereits zuvor in dem Verzeichnis vorhanden sind werden aber, wir gewünscht, übergangen. Wenn ich einen der doppelten Einträge lösche und das Script nocheinmal ausführe wird nicht erneut ein zweiter Eintrag erstellt.
    Was muss ich ändern damit das Script ein neues Bild nur einmal einträgt bzw. warum tut es das jetzt zwei mal??


    <?
    $db = mysql_connect("xxxxx", "xxxxx", "xxxxx");
    mysql_select_db("xxxxxx",$db);
    $handle=opendir ('../images/kinder/');
    while (false !== ($file = readdir ($handle)))
    {
    if ($file != '.')
    if ($file != '..')
    if ($file != 'thumbs')
    if ($file != 'index.php')
    if ($file != 'php.ini')
    if ($file != 'upload.html')
    if ($file != 'upload.php')
    if ($file != 'dbeinlesen.php')


    {
    mysql_query($sql);
    $sql ="SELECT * FROM `bereich1b` WHERE bild='$file'";
    $result = mysql_query($sql);
    if (mysql_num_rows($result) == 0)

    {
    $sql = "INSERT INTO bereich1b (bild) VALUES ('$file')";
    mysql_query($sql);
    echo "Bild <b>$file</b> wurde in die Datenbank <b>
    <font color=\"green\">eingelesen</font></b><br>";
    }
    else
    {
    echo "Bild <b>$file</b> ist bereits in der Datenbank enthalten und wurde <b>
    <font color=\"red\">nicht</font> erneut eingelesen</b><br>";
    }

    }

    }

    closedir($handle);
    echo "<br><center><a href=\"../cms/index.php\">Zurück zum Adminbereich</a></center>";
    ?>
    Zuletzt geändert von Kiecker; 15.04.2009, 06:12.
    @dd Internet Webservice
    Rosenwinkel 22, 22607 Hamburg
    Tel: 040 / 320 34 579 Mail:skieck@yahoo.com, Web: http://www.add-internet.de
    Kursprogramm unter:
    http://www.add-internet.de/kursunterlagen/Kursangebot.pdf

  • #2
    Re: Doppelter Datenbankeintrag

    Ich rate, das Script zu löschen und es ganz neu zu schreiben.
    Mit logischen Operatoren, statt dutzendfach verschachtelten If's.
    Oder gleich mit glob() und Pattern für Bilddateien.
    Mit einer einzigen DB-Abfrage, statt für jede Datei eine.
    Ohne sinnlose Abfragen zwischendurch (dein jetziger Fehler!).
    Mit ordentlich error_reporting.

    Kommentar


    • #3
      Hat sich erledigt

      Hallo Leute,
      die Sache hat sich erledigt.
      @dd Internet Webservice
      Rosenwinkel 22, 22607 Hamburg
      Tel: 040 / 320 34 579 Mail:skieck@yahoo.com, Web: http://www.add-internet.de
      Kursprogramm unter:
      http://www.add-internet.de/kursunterlagen/Kursangebot.pdf

      Kommentar


      • #4
        Re: Hat sich erledigt

        Original geschrieben von Kiecker
        Hallo Leute,
        die Sache hat sich erledigt.
        Wäre nett, wenn du die Lösung für die Nachwelt hierein posten würdest.

        Kommentar


        • #5
          Lösung

          Wäre nett, wenn du die Lösung für die Nachwelt hierein posten würdest.
          Das hatte ich mich nach der vernichtenden (und auch nicht gerade sehr hilfreichen Antwort) von onemorenerd gar nicht mehr getraut.

          Die Lösung war einfach, es musste nur mysql_query($sql); gelöscht werden und schon funzte es.
          @dd Internet Webservice
          Rosenwinkel 22, 22607 Hamburg
          Tel: 040 / 320 34 579 Mail:skieck@yahoo.com, Web: http://www.add-internet.de
          Kursprogramm unter:
          http://www.add-internet.de/kursunterlagen/Kursangebot.pdf

          Kommentar


          • #6
            Das hatte ich mich nach der vernichtenden (und auch nicht gerade sehr hilfreichen Antwort) von onemorenerd gar nicht mehr getraut.
            eine hilfreichere antwort gibts nicht...

            das teil da funktioniert zwar nun, mehr aber auch nicht.
            keine struktur, keine "vernünftige" kontrolle.

            will meinen, die kontrolle was du in die datenbank einträgst sollte zum beispiel auswerten WAS eingetragen werden soll. und nicht das , was NICHT rein darf.
            den dateinamen ungeprüft in die datenbank zu schreiben.. naja, ich hoffe du kontrollierst das bereits beim upload
            Zuletzt geändert von ; 15.04.2009, 09:45.

            Kommentar


            • #7
              Re: Lösung

              Original geschrieben von Kiecker
              Das hatte ich mich nach der vernichtenden (und auch nicht gerade sehr hilfreichen Antwort) von onemorenerd gar nicht mehr getraut.
              Vernichtend, weil dein Code leider wirklich nichts gutes an sich hat.
              Die Lösung war einfach, es musste nur mysql_query($sql); gelöscht werden und schon funzte es.
              Das meinte ich mit "sinnlose Abfragen zwischendurch (dein jetziger Fehler!)". Wie man sieht, hat dieser Hinweis auch ausgereicht. Du hast die Stelle dann selbst gefunden. Also war die Antwort doch hilfreich.

              Kommentar

              Lädt...
              X