ShoutBox-Fehler inkl Patch

Ich habe einen Blog Artikel verfasst - Wie benutze ich die Suche richtig - Bitte diesen beachten und auch umsetzen bevor Ihr ein Neues Thema eröffnet!

  • Es gibt einen Fehler in content/shout.php, wenn man einen DB-Namen mit Minuszeichen verwendet. Es liegt an den fehlenden Quotes in de Abfrage. Dadurch meckert das System ständig mit "Beim Anlegen der MySQL-Tabelle xxx trat ein Fehler auf ...". Die Lösung ist der folgende Patch:

    Im Prinzip reicht die Anpassung der ersten Code-Zeile (Zeilen 7+8, Ergänzung der Back-Hacks "`"). Weil ich dabei war, habe ich den überflüssigen Schnick-Schnack auch gleich entfernt.

  • Vorab:
    Es geht hier nicht um anschwärzen, wie mir in den letzten Jahren vorgeworfen wurde, sondern um das Aufdecken von Fehlern und deren Korrektur. Ich kenne das aus meinen eigenen Open-Source-Projekten, bei denen ich solche Korrekturen und Hinweise immer gerne entgegen genommen habe und auch weiterhin werde.



    Zum Thema:
    Ich wollte die ShoutBox erweitern, so dass 2 Gruppen (Abteilungen) jeweils eine eigene haben. Bei der Umsetzung ist mir folgendes Kode-Stück als Ressourcen-Fresser aufgefallen:

    • Zeile 2 ist der Ressourcen-Fresser: Hier wird der komplette Inhalt (alle Zeilen, alle Spalten) der Shout-Tabelle geladen, um die Anzahl der Zeilen zu bestimmen. Bei mehreren 1000 Beiträgen kann das schon spürbar Zeit und Speicher kosten. Der Einsatz von »count(*)« und die Abfrage des Ergebnisses ist hier klar besser.
    • Die Anzahl (maxsites) wird aber nur im IF-Zweig benötigt. Daher sollte die Abfrage aus Zeile 2ff in den IF-Zweig verschoben werden.
    • Fraglich ist, ob überhaupt die Anzahl benötigt wird. Man kann das OFFSET+LIMIT durchaus auch blind berechnen. Sollte dann z.B. Seite 5 angefordert werden, aber nicht existieren, dann werden halt Null Zeilen ausgegeben.