Verzeichnis auslesen und mit Datenbank vergleichen

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

  • Verzeichnis auslesen und mit Datenbank vergleichen

    Hallo,

    bin absoluter Programmieranfänger und habe in verzweifelter Kleinarbeit folgende Code zusammen gekriegt JETZT BIN ICH AM ENDE - BITTE HELFT MIR:
    Ich möchte ein Verezichnis auslesen, in dem Bilder sind. Anschließend soll in einer Datenbank in der Tabelle products /Spalte products_image anch diesen Namen gesucht werden. Ist dieser Name nicht vorhanden, soll der Name angezeigt werden. So ziemlich alles funktioniert. Nur wird mir als Wert in der "mysql_num_rows" - Abfrage immer als 0 wiedergegeben, obwohl der Name des Bildes genau so in der Datenbank steht. Kann es daran liegen, dass in dem Bildnamen ein Punkt vorhanden ist (image.gif)!

    if ($handle = opendir('./images')) {
    while (false !== ($file = readdir($handle))) {
    if ($file != "." && $file != "..") {

    $filesthere = mysql_query('select products_image from products where products_image = "$file"');
    $num_rows1 = mysql_num_rows($filesthere);
    echo "$num_rows1 Rows\n";
    if($num_rows1 == 0) {
    echo $file;
    echo "<br>";
    $filesthere = stripslashes($filesthere);

    }

    }}
    closedir($handle);
    }

  • #2
    Könntest ja mal folgende Ergebnisse hier posten dann haben wir den Fehler sicher gleich.

    Also was wird bei beiden Fällen ausgeben:

    PHP-Code:
    if ($handle opendir('./images')) {
    while (
    false !== ($file readdir($handle))) {
    if (
    $file != "." && $file != "..") {
    echo 
    $file "<br>";
    }

    }}
    closedir($handle);

    und hier:

    PHP-Code:
    $res mysql_query('select products_image from products');
    while (
    $row mysql_fetch_array($res))
    {
    echo 
    $row['products_image']. "<br>";

    Vielleicht kommst du auch so selbst auf die Lösung ...

    Kommentar


    • #3
      Hier ein Teil der Ausgabe vom 1. Skript - insgesamt sind es einige 1000 Einträge:


      Ar_ultralite_green_me_Mountain_Equipment.jpg
      Vela_ii_footprint_exped_Exped.jpg
      Phantom_15_9_Regular_MHW.jpg
      Rectangular_Himmeltasche_MHW.jpg
      Shadow_55_grey_bd_Black_Diamond.jpg
      Gemueserisotto_mhuhn_250g_Simpert_Reiter.jpg
      Chili_con_carne_125g_Simpert_Reiter.jpg
      Wasserkessel_1l_edelstahl_ohne_sieb_Tatonka.jpg




      Hier die Ausgabe vom 2. Skript. Jedenfals ein Teil, insgesamt sind es einige 1000.

      Djebel_langarm_bluse_cloud_lf_Big_Pack.jpg
      Djebel_langarm_bluse_light_beige_lf_Big_Pack.jpg
      Djebel_kurzarm_bluse_cloud_lf_Big_Pack.jpg
      Djebel_kurzarm_bluse_pink_tamaris_lf_Big_Pack.jpg
      Natural_kurzarmbluse_sand_lf_Big_Pack_616.jpg

      Djebel_kurzarm_hemd_terracotta_lf_Big_Pack.jpg
      Djebel_langarm_hemd_medium_khaki_lf_Big_Pack.jpg
      Glacy_d2_kurzarm_hemd_dark_red_lf_Big_Pack_61.jpg
      Glacy_d2_kurzarm_hemd_grey_lf_Big_Pack.jpg
      Natural_bluse_aermellos_sand_lf_Big_Pack_616.jpg



      Ich komme leider nicht selbst drauf. Denn es gibt wirklich überinstimmende Einträge und welche die nicht übereinstimmen. Irgendetwas ist mit meiner Datenbankabfrage falsch. NUR WAS?

      Wenn ich die Variable weglasse und manuell irgend etwas eintrage, wird erkannt, ob die Datei in der Datenbank vorhanden ist oder nicht.

      z.B.
      $filesthere = mysql_query("SELECT * FROM products where products_image ='gif1.gif'");
      $num_rows1 = mysql_num_rows($filesthere);
      echo "$num_rows1 Rows\n";

      Antwort: Rows 1 - da vorhanden


      $filesthere = mysql_query("SELECT * FROM products where products_image ='gif2.gif'");
      $num_rows1 = mysql_num_rows($filesthere);
      echo "$num_rows1 Rows\n";

      Antwort: Rows 0 - da nicht vorhanden
      Zuletzt geändert von lotte; 25.08.2006, 15:15.

      Kommentar


      • #4
        Hallo Lotte,

        PHP-Code:
        $filesthere mysql_query('select products_image from products where products_image = "$file"'); 
        dabei wird $file nicht ersetzt, versuche:

        PHP-Code:
        $filesthere mysql_query("select products_image from products where products_image = '$file'"); 
        Gruß Offe

        Kommentar


        • #5
          Geht leider auch nicht! Aber Danke für die Hilfe!

          Vielleicht hat ja noch einer eine Idee!

          Kommentar


          • #6
            War leider im Urlaub, daher gibts jetzt erst eine Antwort, versuch mal bitte folgendes:

            PHP-Code:
            $filesthere mysql_query("select products_image from products where products_image='".$file."' "); 
            Sollte dann eigentlich klappen, vor $file einfach ". und danach ." .

            Kommentar

            Lädt...
            X