• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL Spalteneinträge mit Verzeichnis vergleichen

web673

Neues Mitglied
Huhu,

ich habe ein Problem....

wie kann ich Dateien die in einem Verzeichnis liegen (images/Galerie/'.kategoriename.'/<hier sind die daten>)
wie kann ich diese nun mit Daten in einer MySQL Spalte (name) vergleichen und die doppelten nichtmehr anzeigen ?

Meine Überlegungen waren da etwas kompliziert und funktionierten doch nicht.....

Der code, der mir die Daten aus dem verzeichnis ausgibt.
Code:
$ext = array('jpg', 'png');
  echo '<select name="bildurl" id="image" size="1"><option></option\n';
  $handle=opendir('../images/upload/galerie/'.$kategoriename.'/');
      while ($file = readdir ($handle))
   {
    if ($file != "." && $file != "..")
      {
       if(in_array(strtolower(substr(strrchr($file, '.'),1)),$ext)) {     
          echo "<option>$file</option>";
        }
      }
    }
    
  closedir($handle);

  echo '</select>';

Währe über eine Hilfe oder einen Codeschnipsel sehr dankbar.

Grüße web673
 
Werbung:
Hi,

ich sehe da jetzt aber keinen Vergleich mit Daten aus einer Datenbank mit den Dateien in deinem Verzeichnis.

Was befindet sich denn in der Spalte in den Datenbank. Der Dateiname samt Dateiendung? Dann musst du doch eigentlich nur in der Schleife, nachdem du schon $file gefiltert hast, jedesmal eine Abfrage an die Datenbank senden:

PHP:
<?php
$sql = "SELECT
              COUNT(*) as num
        FROM
              tabelle
        WHERE
              spalte = '$file'
";
$result = mysql_query($sql) OR die (mysql_error());
$row = mysql_fetch_array($result);
if ($row["num"] > 0) {
  echo 'Datei vorhanden, nicht mehr anzeigen';
}
 
wie mach ich das am besten ?

(ja ich hab oben kein beispiel da ich das nicht hinbekommen habe...) habe nur das auslesen aus verzeichnis...

ja in der Spalte bildurl steht immer z.b 1.jpg oder bla.png

ich verstehe halt nicht wie ich das am besten via while schleife vergleichen soll und das dann ausblende.

Grüße
 
Werbung:
Nunja, ich denke du willst die Datei dann nicht mehr in der Select-Box anzeigen, wenn diese schon in der DB steht:

PHP:
if(in_array(strtolower(substr(strrchr($file, '.'),1)),$ext)) {     
          echo "<option>$file</option>";
        }
=>
PHP:
if(in_array(strtolower(substr(strrchr($file, '.'),1)),$ext)) {
  $sql = "SELECT
                COUNT(*) as num
          FROM
                tabelle
          WHERE
                spalte = '$file'
  ";
  $result = mysql_query($sql) OR die (mysql_error());
  $row = mysql_fetch_array($result);
  //Wenn in der DB kein entsprechender Dateiname gefunden wurde, 
  //$file zur Select-Box hinzufügen
  if ($row["num"] < 1) {
    echo "<option>$file</option>";
  }
}

Du musste natürlich noch "tabelle" und "spalte" anpassen!
 
Zurück
Oben