[gelöst] Portal - Fehlermeldung

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
marjac99
Mitglied
Beiträge: 48
Registriert: 25.12.2005 12:20
Wohnort: Solothurn, CH
Kontaktdaten:

Beitrag von marjac99 »

Da werd ich jetzt überhaupt nicht schlau draus, aus dem was da zu sehen ist... :roll:
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Sehr schön,


Suche in Deiner jetzigen portal.php

Code: Alles auswählen

$sql = "SELECT post_id FROM " . POSTS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
        message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
}
und ersetze ihn gegen:

Code: Alles auswählen

$sql = "SELECT post_id FROM " . POSTS_TABLE . " LIMIT 100";
if ( !($result = $db->sql_query($sql)) )
{
        message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
}
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
marjac99
Mitglied
Beiträge: 48
Registriert: 25.12.2005 12:20
Wohnort: Solothurn, CH
Kontaktdaten:

Beitrag von marjac99 »

:o Es funktioniert!!! [ externes Bild ]

Du bist genial, Danke!!!!! :D
Benutzeravatar
marjac99
Mitglied
Beiträge: 48
Registriert: 25.12.2005 12:20
Wohnort: Solothurn, CH
Kontaktdaten:

Beitrag von marjac99 »

Ähh.. Miriam? :oops:

Die "letzten Beiträge" sind aber nicht die letzten Beiträge... :-?
Wie kommt das?

Siehst du hier
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Wen wunderts? LIMIT setzen ohne ORDER
- das ist dann halt wie Lotto

Versuch(t)s mal so

Code: Alles auswählen

$sql = "SELECT post_id FROM " . POSTS_TABLE . "
	ORDER BY post_time DESC LIMIT 0,100";
wobei das mit der 100 als LIMIT ja auch für die Wiesen ist, falls die letzten hundert Posts
im schlimmsten Fall mal in nem einzigen Laberthread stehn und so gesehn..

Code: Alles auswählen

$sql = "SELECT DISTINCT(topic_id), post_id FROM " . POSTS_TABLE . "
	ORDER BY post_time DESC LIMIT 0,$limit";
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Was soll dieser Quatsch überhaupt. Um die letzten Posts anzuzeigen braucht man nur zwei Abfragen.. einmal welche Foren, darf der User nicht sehen und dann dann ruft man die letzten Beiträge ab.

Das ist jetzt keinesfalls die Lösung, aber der ungefähre Ansatz zum Verständnis:

Code: Alles auswählen

		// read topics
		$limit = 25; // so viele sollen angezeigt werden
		$auth_sql = ''; // hier müssen die foren ids rein, in der der User Zugang hat.. z.B.  AND f.forum_id NOT IN(' . implode(', ', $exclude_forums) . ')' es geht aber auch f.forum_id <> $exclude_forum_id, wenn es nur eins ist.
		$sql = 'SELECT t.*
					FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f
					WHERE f.forum_id = t.forum_id
						AND ' . $auth_sql . '
					ORDER BY t.topic_last_time DESC
					LIMIT ' . $limit; 
Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

So, ihr Feintuner,
die Problem-SQL Abfrage, die das Fass zum Überlaufen gebracht hat, wurde also erst einmal lokalisiert.
easygo hat geschrieben:wobei das mit der 100 als LIMIT ja auch für die Wiesen ist, falls die letzten hundert Posts
im schlimmsten Fall mal in nem einzigen Laberthread stehn und so gesehn..

Code: Alles auswählen

$sql = "SELECT DISTINCT(topic_id), post_id FROM " . POSTS_TABLE . "
	ORDER BY post_time DESC LIMIT 0,$limit";
Und was passiert, wenn blöderweise die letzten $limit-Topics in einem Forum stehen, die der User nicht betreten oder sonst irgendwie schauen darf?

Also ist hier wohl noch eine kleine WHERE-Klausel fällig. *gell*

Aber ich denke mal, dass es reichen sollte, anstatt

Code: Alles auswählen

$sql = "SELECT post_id FROM " . POSTS_TABLE . " LIMIT 100;
easys ersten Vorschlag einzusetzen. Also:

Code: Alles auswählen

$sql = "SELECT post_id FROM " . POSTS_TABLE . "
   ORDER BY post_time DESC LIMIT 0,100";
Vllt noch das LIMIT etwas heraufsetzen und gut is'.

Jemand weitere Vorschläge?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
marjac99
Mitglied
Beiträge: 48
Registriert: 25.12.2005 12:20
Wohnort: Solothurn, CH
Kontaktdaten:

Beitrag von marjac99 »

Miriam hat geschrieben:So, ihr Feintuner,
die Problem-SQL Abfrage, die das Fass zum Überlaufen gebracht hat, wurde also erst einmal lokalisiert.

Code: Alles auswählen

$sql = "SELECT post_id FROM " . POSTS_TABLE . "
   ORDER BY post_time DESC LIMIT 0,100";
Vllt noch das LIMIT etwas heraufsetzen und gut is'.

Jemand weitere Vorschläge?
Da nix anderes mehr von euch Spezialisten kommt, ergänze ich oben den Teil, gelle? :wink:

Edit: Habs reingesetzt, getestet.... es klappt! :grin:

Danke euch!
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Das sollte jetzt halten.... Bis auf weiteres. :D
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Sowas tut in den Augen weh. Aber ich guck dann mal weg. Wird Zeit, dass den Portal Mod mal jemand überarbeitet :roll:
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“