Unread Post Information to Database Mod - Schleifenproblem

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Ram-Brand
Mitglied
Beiträge: 51
Registriert: 09.09.2003 22:39
Wohnort: Hannover
Kontaktdaten:

Unread Post Information to Database Mod - Schleifenproblem

Beitrag von Ram-Brand »

Hi!

Ich habe mir das Mod "Unread Post Information to Database Mod" besogrt und eingebaut. Es funktionert auch, aber ein Problem gibt es.
Die index.php vom Forum braucht sehr lange zum Laden. FAst 30sec. Das nervt natürlich gewaltig.

Ich habe jetzt herraus gefunden, das diese an einer Schleife im Mod liegt.

Jetzt meine Frage:
Gibt es eine Möglichkeit diese Schleife anderst zu programmieren um die Ladezeit zu verringern?

Code: Alles auswählen

while ($topic_read = mysql_fetch_row($result2))
        {

         if ($display_locked_too == 0)
           {
           $result4 = mysql_query("SELECT topic_id, topic_status FROM
                           " . TOPICS_TABLE . " WHERE topic_id = $topic_read[0]");
           $topic_status = mysql_fetch_row($result4);
           }

         $result3 = mysql_query("SELECT topic_id, post_id, forum_id, visit_time, user_id FROM " . TOPIC_READ_TABLE . " WHERE topic_id = $topic_read[0] AND user_id = $user_id ");
         $read = mysql_fetch_row($result3);

        if (($topic_read[3] > $read[3] || $topic_read[4] > $read[3]) &&  $topic_unread == "" && $topic_status[1] != 1)
       {
       $topic_unread = 1;
       break;
       }
     }

Danke schonmal!
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag von D@ve »

Datenbankabfragen in Schleifen zu Programmieren ist ziemlich unsauberer Programmierstil. Kann aber zu dem Programm unten gerade nicht viel sagen, da ich mich weder mit den einzelnen Variablen noch mit Deinem Hack ausgekenne.

Versuch halt die beiden Queries außerhalb der Schleife unterzubringen und im. Man kommt Performance-mäßig besser weg, wenn man einmal etwas mehr aus der Datenbank liest und im Script selectiert, als x-mal nur ein paar bytes. Das gilt vor allem dann, wenn der Query in eine Schleife steht und man nicht absehen, kann wie oft diese durchlaufen wird...

Gruß, Dave

PS.: Einen Anweisungs-Block mit break zu verlassen ist auch nicht die feine englische Art (außer bei CASE-Anweisungen)...
There are only 10 types of people in the world: Those who understand binary, and those who don't
Antworten

Zurück zu „phpBB 2.0: Mod Support“