Avatar

Topics in extern site (Technics)

by Auge ⌂, Monday, December 13, 2010, 00:01 (4882 days ago) @ Christian

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!


Complete thread:

 RSS Feed of thread