Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Message auslesen
#1
Hallo,
So sieht meine Abfrage momentan aus:

PHP-Code:
$query $db->query(" SELECT t.*, u.username
    FROM "
.TABLE_PREFIX."threads t
    LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=t.uid)
    WHERE 1=1 
$unviewwhere AND t.visible='1' AND t.closed  NOT LIKE 'moved|%' AND t.fid IN (3,4,5,6,9,69,7,11,12,13,14,72,17,15,37,39,38,40) AND usergroup LIKE '8'
    ORDER BY t.firstpost DESC
    LIMIT 0, "
.$mybb->settings['overview_max']); 


Wie bekomme ich nun noch den Inhalt des ersten Beitrages der Themen, also MESSAGE aus mybb_posts ?


Hoffe auf schnelle Hilfe
Zitieren
#2
Wenn die nächste Zeile
PHP-Code:
$result $db->fetch_array($query); 
lautet, dann müsste die pid des ersten Beitrages mit
PHP-Code:
$message_pid $result['firstpost']; 
auszulesen sein.

Für den Inhalt müsstest Du auch die posts-Tabelle auslesen.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#3
PHP-Code:
$query $db->query(" SELECT t.*, u.username
    FROM "
.TABLE_PREFIX."threads t
    LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=t.uid)
    WHERE 1=1 
$unviewwhere AND t.visible='1' AND t.closed  NOT LIKE 'moved|%' AND t.fid IN (3,4,5,6,9,69,7,11,12,13,14,72,17,15,37,39,38,40) AND usergroup LIKE '8'
    ORDER BY t.firstpost DESC
    LIMIT 0, "
.$mybb->settings['overview_max']);
            echo 
'';

          while(
$row $db->fetch_array($query))  
{    
  if(
$mybb->user['uid'] >= 0)

{
         
             
            echo 


Habe jetzt noch den Rest hinzugefügt, bis zum Inhalt, der nach dem " dann hinter dem echo folgt.

Wie lese ich eine zweite Tabelle aus?, das ist auch eines meiner Hauptprobleme, warum ich nicht zum Ziel komme.
Zitieren
#4
Mit JOIN, was du ja bereits machst.

Müsste so gehen:
PHP-Code:
"SELECT t.*, u.username
    FROM "
.TABLE_PREFIX."threads t
    LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=t.uid)
    LEFT JOIN "
.TABLE_PREFIX."posts p ON p.pid=t.firstpost
    WHERE 1=1 
$unviewwhere AND t.visible='1' AND t.closed  NOT LIKE 'moved|%' AND t.fid IN (3,4,5,6,9,69,7,11,12,13,14,72,17,15,37,39,38,40) AND usergroup LIKE '8'
    ORDER BY t.firstpost DESC
    LIMIT 0, "
.$mybb->settings['overview_max'
Zitieren
#5
Das klappt, aber ich möchte ja nicht die ID des Beitrages auslesen, sondern den Beitrag selber, also den Text den der Verfasser geschrieben hat, wäre dankbar, wenn du das noch ändern könntest.

Auslesen tue ich es mit: {$row['firstpost']}
Zitieren
#6
Mit "firstpost" hast Du die pid des Beitrages. Nun musst Du nur nach der pid in der Tabelle mybb_posts suchen und Dir den Inhalt "message" ausgeben lassen. Das heist, Du musst in die Abfrage noch p.message einbauen.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#7
Klappt perfekt.
Wiedereinmal perfekter Support, vielen Dank! Smile
Zitieren