suche nach bildern

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

  • suche nach bildern

    hallo,

    ich habe eine suche nach bildern erstellt. diese dauert sehr lange, da ich innerhalb der schleife überprüfe, wie gross die einzelnen bilder sind. hier meine suche:

    PHP-Code:
    <table border="0" cellpadding="0" cellspacing="0" 
    style="border-collapse: collapse" bordercolor="#111111" 
    width="95%" id="AutoNumber12">
        <?
        $count = 0;
        echo "<tr>";

        $liste = array();
        if($obj = mysql_query("SELECT id, url, parse 
    FROM bildarchiv WHERE url Like '%$suchwort%'"))
        {
            while($row = mysql_fetch_assoc($obj))
            {
                array_push($liste,$row);
            }
        }

        $i=0;

        foreach ($liste AS $val)
        {
            $id = $liste[$i]['id'];
            $bild = $liste[$i]['url'];
            $file = $bild;
            $filename = $bild;
            $tmp_image = $bild;
            #$groesse = @getimagesize($tmp_image);
            $width = $groesse[0];
            $height = $groesse[1];
            $typ = $groesse[2];
            $altes_bild = "<img border=\"0\" src=\"$bild\" width=\"$width\" height=\"$height\">";

            
            $homepage_url = $liste[$i]['parse'];
            $homepage_link = "<a target=\"_blank\" href=\"$homepage_url\">LINK ZUR HOMEPAGE</a>";

            echo "<td align=\"center\" width=\"6%\">";
            echo "<TABLE><TR><TD>";
            echo "<p align=\"center\"><font face=\"Arial\" color=\"#ffff00\" size=\"2\">";
            echo "<a target=\"_blank\" href=\"$bild\">";
            echo $new_image;
            echo '</td></TR><TR><TD>';
            echo "<p align=\"center\"><font face=\"Verdana\" size=\"2\">$homepage_link</font>";
            echo "<tr><td>&nbsp;</td></tr>";
            echo '</TD></TR></TABLE></TD>';

            $count++;
            if($count == 4)
            {
                echo "</tr><tr>";
                $count=0;
            }
        }
        
        ?>
    </table>

    Aktiviere ich die Zeile #$groesse = @getimagesize($tmp_image); dann dauert die Suche ewig. Nehme ich das heraus,
    geht das rasend schnell. Wieso?


    Mfg
    Benji
    Zuletzt geändert von Benji; 08.04.2005, 12:57.

  • #2
    1. http://www.php-resource.de/forum/sho...threadid=50454
    (scrollbalken!)

    2. hast du doch im ersten satz selbst beantwortet!

    Kommentar


    • #3
      und wie kann ich das problem nun lösen?

      Kommentar


      • #4
        du editierst dein post und setzst die zeielnumbrüche so ein, dass man nicht horizontal scrollen muss.

        Kommentar


        • #5
          so besser ?

          Kommentar


          • #6
            jepp!

            ist schon richtig (einigermaßen), nur ist's vom aufbau her evtl. nicht optimal - wozu die größen jedesmal neu berechnen? lass dein script jedesmal neu laufen, wenn eine datei geändert bzw. hinzugefügt wird - bis dahin kannst du die größen mit in die db eintragen.

            Kommentar


            • #7
              hmm... dein Code sah doch bevor du die umbrüche reingemacht hast noch etwas anders aus, oder?? da war ja noch was mit if()...
              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
              Schön - etwas Geschichte kann ja nicht schaden.
              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

              Kommentar


              • #8
                also folgendes. die bilder sind als url in der datenbank vorhanden. nun möchte ich innerhalb einer for schleife alle bilder auslesen. es sollen aber nur die bilder angezeigt werden, die eine bestimmte grösse (z.B. 150x100 pixel) nicht überschreiten.

                und sobald ich die getimagesize funktion verwende, dauert die suche ewig. wieso eigentlich?

                Kommentar


                • #9
                  um wieviele Bilder handelt es sich ungefähr bei deiner Ausgabe??

                  Ich hab aktuell ein Script geproggt, bei dem maximal 40 Bilder (aus ca. 1000) rauskommen und hier verwende ich auch getimagesize() erst bei der Ausgabe .... ich hab hier 2MBit-DSL und merke nichts dass der Server zu langsam antworten würde...
                  Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                  Schön - etwas Geschichte kann ja nicht schaden.
                  Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                  Kommentar


                  • #10
                    ich habe derzeit 5000 bilder in der tabelle. als suchergebnisse erhalte ich lediglich 29 und das dauert wie gesagt ewig bis die ausgegeben werden.

                    Kommentar


                    • #11
                      in dem Fall ist es kein Wunder, weil du ja alle 5000 Bilder mit getimagesize() prüfst um rauszufinden ob sie eine gewisse Größe nciht überschreiten.

                      Bei mir benutze ich getimagesize() nur auf die 40 Bilder die auch tatsächlich angezeigt werden.

                      Würd dir hierfür raten dass so zu machen wie penizillin es vorgeschlagen hat, anders dürfte es schwierig werden...
                      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                      Schön - etwas Geschichte kann ja nicht schaden.
                      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                      Kommentar


                      • #12
                        das prüfe ich doch vorher schon.

                        PHP-Code:
                        SELECT idurlparse FROM bildarchiv WHERE url Like '%$suchwort%' 
                        ich erhalte wie gesagt, 29 ergebnisse. aber dennoch dauert die suche sehr lange.

                        Kommentar


                        • #13
                          ich glaube nicht, dass es noch viel zu sagen gibt.

                          Kommentar


                          • #14
                            Liefert deine mysql-abfrage schon nur noch 29 Ergebnisse, oder vielleicht doch meinetwegen 1000 Ergebnisse aber es werden nur noch 29 angezeigt weil die anderen eine gewissen Größe überschreiten??

                            indem Fall müsste dein Server nämlich 1000 Bilder öffnen um die Größe zu ermitteln, versuch mal auf deinem Rechner mit nem Bildbearbeitungsprogramm 1000 Bilder zu öffnen und du wirst sehen wie lang das dauert.

                            Wie auch immer, umbauen wie von penizillin vorgeschlagen und die Abfrage der Größe auch gleich mit in die mysql-query einbauen, dann sollte das laufen wie geschmiert...
                            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                            Schön - etwas Geschichte kann ja nicht schaden.
                            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                            Kommentar


                            • #15
                              das problem liegt bestimmt darin, dass die bilder nur per url (z.B. http://www.domain.de/bild.jpg) aufzurufen sind. Oder was meint ihr?

                              Kommentar

                              Lädt...
                              X