Seite 1 von 1
Frage: Wie bei $latest_topic keine internen Themen anzeigen?
Verfasst: 22.04.2006 20:13
von maker
Hallo @ all,
ich hab ein kleines Problem.
Und zwar verwende ich bei mehreren Sachen die Anzeige des letzten Themas, sprich, das Thema was als letztes eröffnet wurde, wird angezeigt:
Code: Alles auswählen
$sql = 'SELECT topic_title
FROM ' . TOPICS_TABLE . '
WHERE topic_id = ' . $max_topic_id;
[..]
$latest_topic = $row['topic_title'];
Allerdings gibt es auf dem Forum auch ein internes Moderatorenforum und die Beiträge aus diesem Forum sollen natürlich nicht unter "Letztes Thema: ABC" angezeigt werden.
Wie kann ich denn diese Themen von der Anzeige ausschließen?
Vllt. so?
Code: Alles auswählen
if (topic_id = forum_id moderatorenforum) {
$latest_topic = topic_id -1
} else {
$latest_topic = topic_id
}
echo $latest_topic
Danke, Gruß
maker
Verfasst: 22.04.2006 22:41
von cYbercOsmOnauT
In der TOPICS_TABLE sind auch die ForenID's der Topics gespeichert. Du musst demnach nur Deine SQl ein wenig erweitern um bestimmte Foren auszuschliessen.
Code: Alles auswählen
$sql = 'SELECT topic_title
FROM ' . TOPICS_TABLE . '
WHERE topic_id = ' . $max_topic_id . '
AND forum_id <> 3;
Anstelle der 3 natürlich die forum_id des auszuschliessenden Forums angeben.
Fertig.
Grüße,
Tekin
Verfasst: 23.04.2006 00:16
von maker
danke für die fixe Antwort.
hab jetzt folgendes
Code: Alles auswählen
$max_topic_id = $row['max(topic_id)'];
$sql = 'SELECT topic_title
FROM ' . TOPICS_TABLE . '
WHERE topic_id = ' . $max_topic_id . '
AND forum_id <> 3';
das Problem ist jetzt nur, wenn die id = 3 ist, also das Thema aus dem internen Forum stammt, denn nimmt er nicht den nächsten Eintrag also max(topic_id) -1 sondern er nimmt einfach gar keinen Eintrag, da die Bedingung maximale Topic_id und nicht ausm Forum mit der ID = 3 ja nicht erfüllt wird :/
Muss ich da also doch eine if Abfrage hinhängen?
ginge das z.B so:
Code: Alles auswählen
if ($row['topic_title'] = "") {
$sql = 'SELECT topic_title
FROM ' . TOPICS_TABLE . '
WHERE topic_id = ' . $max_topic_id -1 . '
AND forum_id <> 3';
} else {
echo $row['topic_title'];
}
und das denn nochmal abfragen, ob der 2. Eintrag nicht auch ausm internen Forum kommt...hmm...irgendwie umständlich.
Gibts da denn ne bessere Möglichkeit?
greetz maker
Verfasst: 23.04.2006 01:11
von cYbercOsmOnauT
Entschuldige, ich dachte Du hast ein Script das "die letzten 10" Themen anzeigt z.B. Ich sollte nicht antworten, wenn der Kleine hier in der Wohnung "stresst".
Okay, dann nimm folgende SQL, für die Du auch die $max_topic_id nicht benötigst.
Code: Alles auswählen
$sql = 'SELECT topic_title
FROM ' . TOPICS_TABLE . '
WHERE forum_id <> 3
ORDER BY topic_id DESC
LIMIT 1';
Besser wäre m.E. wenn Du auch die topic_id Dir holst und dann auch einen Link anbieten kannst.
Code: Alles auswählen
$sql = 'SELECT topic_title, topic_id
FROM ' . TOPICS_TABLE . '
WHERE forum_id <> 3
ORDER BY topic_id DESC
LIMIT 1';
Viele Grüße,
Tekin
Verfasst: 23.04.2006 12:16
von maker
ja, die Kinnas eben

okay danke, cYbercOsmOnauT.
Hat funktioniert, werd jetzt mal versuchen das ganze nachzuvollziehen, damit ich auch noch mal bissl was lern
greetz maker