Überprüfen ob Wert in Tabelle und entsprechende Meldung

P

pillefusss

Hallo ihr lustigen Forummenschen!

Folgender Sachverhalt:

Ich habe ein Verzeichnis in dem sich x Unterverzeichnisse befinden und eine Tabelle (MySQL), in der sich nach Möglichkeit die Namen dieser Unterverzeichnisse befinden sollen
Sollte ein Verzeichnis hinzugekommen sein, soll mein PHP Script überprüfen, ob dieser schon in der Datenbank hinterlegt ist, oder halt eine entsprechende Meldung ausgeben. Hab hier im Forum schonmal einen Ansatz gefunden, der der Sache entsprechen würde, leider wurde dort aber nicht weiter drauf eingegangen.

Irgendetwas in der Art von IF EXISTS ? sollte es tun, allerdings finde ich im Netz keine Beispiele / Erläuterungen, die in meinem Fall zutreffen würden.

Hier mal noch ein paar Codeschnipsel, die gegeben sind (daraus müsste man doch irgendwas basteln können...):
PHP:
 $handle = opendir("../fotos/test/");
  while($file = readdir($handle)) {
      if($file != "." && $file != "..") 
  {
   echo "$file<br>";
  }
PHP:
   $abfrage = "SELECT * FROM inhalt where ordner = '$file'";
   $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
     {

}

Also, die beiden Teile irgendwie kombinieren und prüfen, ob der Ordner schon in der DB ist...
Wäre nett, wenn ich schnell Hilfe bekommen würde.

Gruß
Flo
 
Zuletzt bearbeitet von einem Moderator:
Sowas in der Art sollte funktionieren:
PHP:
//DB-Verbindung herstellen
$root="../fotos/test/";
$res=mysql_query('SELECT verzeichnisname FROM verzeichnisse');
$dirs=array();
while ($row=mysql_fetch_assoc($res) {
    $dirs[] = $row['verzeichnisname'];
}
$dirhandle=opendir($root);
while ($dir=readdir($dirhandle)) {
    if ( is_dir($root.$dir) && !in_array($dir,$dirs)) {
        mysql_query("INSERT INTO verzeichnisse ".
            "SET verzeichnisname='".$dir."'");
    }
}

//Auch noch der umgekehrte Fall:
//(Verzeichnis wurde gelöscht)
foreach($dirs as $dir) {
    if (!is_dir($root.$dir)) {
        mysql_query("DELETE FROM verzeichnisse WHERE verzeichnisname ".
            "LIKE '".$dir."'");
    }
}
Syntaxfehler sind bei hier getipptem Code gratis.

Ich würde vermeiden, für jedes Verzeichnis eine eigene Datenbankabfrage zur Prüfung zu starten, da so viele Datenbankabfragen in der Regel langsamer sind.

Gruß hpvw
 
Also, erstmal danke! Bis auf einen Gratis Tippfehler klappt es wunderbar... Jetzt versuch ich das mal noch in meine gewünschte Form zu bringen...
 

Neue Beiträge

Zurück