Topics in extern site (Technics)
Hallo
Nur wird bei mir noch die Zeit falsch ausgegeben, ...
$row['time'] = strftime("%Y%m%d",$row['time']);
statt $time = strftime("%Y%m%d",$row['time']);
, wenn es denn 20101213 (für heute) heißen soll.
... sowie der Name des Verfassers ist teilweise fehlerhaft.
Wieso fehlerhaft? Er ist einfach nicht da. Wahrscheinlich ist er im Eintrag nicht explizit aufgeführt, da dort nur die ID eines registrierten Benutzers vermerkt ist. Der Name des Posters steht ja nur drin, wenn er keine ID hat, also nicht angemeldet postet.
Müsste also zusätzlich als Fallback der (evtl.) zum Eintrag gehörige name aus den Benutzerdaten geholt werden.
Das regelt Alex mit einem LEFT_JOIN der $db_settings['userdata_table']
auf die $db_settings['forum_table']
(siehe entry.inc.php
ab Zeile 23 (v2.2.6).
Mit einem WHERE im Statement sollte das auch klappen. Da ich das aber nicht täglich mache, bin ich mir nicht sicher, ob es so funktioniert.
SELECT t1.id, t1.name, t1.subject, t2.user_name, UNIX_TIMESTAMP(TIME) AS TIME FROM forum_table AS t1, userdata_table AS t2 WHERE t1.user_id = t2.user_id ORDER BY t1.TIME DESC LIMIT 0, 5
Wenn es funktioniert, hat man bei einem Posting eines nicht angemeldeten Nutzers den Namen im Feld name
aus der Tabelle forum_table
, ansonsten steckt der Name in user_name
aus userdata_table
.
Ob es funktioniert, kann mit echo '<pre>'.print_r($result, true).'</pre>';
nach dessen Generierung geprüft werden. Stehen dort die richtigen (letzten n
) Einträge? Ist in jedem Eintrag entweder name
oder user_name
richtig befüllt?
Wenn ja, bleibt nur noch, mit einer if-else-Verzweigung den Namen je Datensatz entweder aus dem einen oder aus dem anderen Feld zu holen.
--
Trenne niemals Müll, denn er hat nur eine Silbe!