Seite 1 von 4

Letztes Attachmentbild im anzeigen

Verfasst: 28.11.2005 13:57
von mora
Hallo,
ich würde gerne auf der Indexseite des Forums stets ein kleines Bild des zuletzt geposteten Attachments (Bild) mit ein paar Informationen dazu (z.b. Poster, Subforum, Beitragstitel, Datum) anzeigen lassen.
Meiner Suche nach scheint es sowas in der Art noch nicht zu geben.

Eventuell würde ich mich auch selbst um eine Lösung bemühen :roll: , wenn mir jemand etwas Hilfestellung bei der Ermittlung des letzten Postings mit einem Attachment gibt und mir die passende Select-Anweisung hierfür nennen könnte ;-)
Den Rest such ich mir dabei.

Hilft mir jemand?
Vielen Dank
monika

Verfasst: 28.11.2005 14:09
von Dr.Death
Hm,

wenn man davon ausgeht, das die höchste ID das aktuellste Attachment ist:

quick and dirty:

Code: Alles auswählen

	$sql = "SELECT * FROM phpbb_attachments
			ORDER BY attach_id ASC ";
	
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result)) 
	{
		$last_attachment = $row['attach_id'];
	}
Damit hast du in der Variablen $last_attachment die attachment_id des letzten Uploads stehen.

Vielleicht kannst du damit was anfangen.

Verfasst: 28.11.2005 14:29
von fanrpg
dr.death hat geschrieben:Hm,

wenn man davon ausgeht, das die höchste ID das aktuellste Attachment ist:

quick and dirty:

Code: Alles auswählen

	$sql = "SELECT * FROM phpbb_attachments
			ORDER BY attach_id ASC ";
	
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result)) 
	{
		$last_attachment = $row['attach_id'];
	}
Damit hast du in der Variablen $last_attachment die attachment_id des letzten Uploads stehen.

Vielleicht kannst du damit was anfangen.
Ehm nicht wirklich

Code: Alles auswählen

$sql = "SELECT * FROM `phpbb_attachements` WHERE `extension`= 'jpg' OR `extension` = 'jpeg' OR `extension` = 'png' ORDER BY `attach_id` DESC LIMIT 1";
if(!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not query last attachement', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$attach_id = $row['attach_id'];
$filename = $row['real_filename'];
echo '<img src="media/'.$filename.'" alt="" border="0">';
Das müsste soweit eigentlich funktionieren, aber ungetestet :wink:

Verfasst: 28.11.2005 14:39
von mora
Danke, das ist zumindest schon mal ein Anfang :D
Aber willst du tatsächlich immer gleich ALLE Attachments auslesen?
Zur Zeit sind es mehr als 40000 Bilder....

Ist es nicht besser genau EINS (das letzte) auszulesen? Wegen der Performance, oder macht das nichts?

Verfasst: 28.11.2005 14:40
von mora
UUps, da war jemand schneller :grin:

Verfasst: 28.11.2005 14:43
von mora
Oh super, du hast ja gleich schon eine Bildanzeige dabei!

Würden mir nur die Daten des dazugehörigen Beitrags fehlen.... :roll: :wink:


(und noch ein paar kleinigkeiten)

Verfasst: 28.11.2005 14:49
von fanrpg

Code: Alles auswählen

$sql = "SELECT * FROM `phpbb_attachements` WHERE `extension`= 'jpg' OR `extension` = 'jpeg' OR `extension` = 'png' ORDER BY `attach_id` DESC LIMIT 1"; 
if(!($result = $db->sql_query($sql))) 
{ 
message_die(GENERAL_ERROR, 'Could not query last attachement', '', __LINE__, __FILE__, $sql); 
} 
$row = $db->sql_fetchrow($result); 
$attach_id = $row['attach_id']; 
$filename = $row['real_filename'];
$topic_id = $row['topic_id']; 
echo '<a href="'.append_sid($phpbb_root_path.'viewtopic.'.$phpEx.'?t='.$topic_id).'"><img src="media/'.$filename.'" alt="" border="0"></a>';
Auf den direkten Beitrag kann man nicht springen nur aus Thema soviel in in der Struktur soweit sehen kann.
Oder ich hab ne andere Version vom Attach Mod.

Verfasst: 28.11.2005 15:01
von mora
Ok soweit! :grin:
Auf das Thema springen ist schon gut.
Kann ich auch den User ermitteln und anzeigen, der das Bild gepostet hat?

Kann ich meine Bild so ausgeben? =>

Code: Alles auswählen

$size = GetImageSize ("media/'.$filename."); $noh=$size[1]/5; $now=$size[0]/5; 
echo '<img src="media/'.$filename." width="$now" height="$knoh" border="0">'; 

Verfasst: 28.11.2005 15:12
von fanrpg

Code: Alles auswählen

$sql = "SELECT * FROM `phpbb_attachements` WHERE `extension`= 'jpg' OR `extension` = 'jpeg' OR `extension` = 'png' ORDER BY `attach_id` DESC LIMIT 1"; 
if(!($result = $db->sql_query($sql))) 
{ 
message_die(GENERAL_ERROR, 'Could not query last attachement', '', __LINE__, __FILE__, $sql); 
} 
$row = $db->sql_fetchrow($result); 
$attach_id = $row['attach_id']; 
$filename = $row['real_filename']; 
$topic_id = $row['topic_id'];
$poster_id = $row['poster_id'];
$sql = "SELECT `username`, `user_id` FROM `".USERS_TABLE."` WHERE `user_id` = '".$poster_id."' LIMIT 1";
if(!($result = $db->sql_query($sql))) 
{ 
message_die(GENERAL_ERROR, 'Could not query attachement->userdata', '', __LINE__, __FILE__, $sql); 
}
$attach_user = $db->sql_fetchrow($result); 

     $size = getimagesize('media/'.$filename.');
       $height = $size[1];
       $width = $size[0];
     if ($height > 150)
         {
               $height = 150;
               $percent = ($size[1] / $height);
               $width = ($size[0] / $percent);
         }
     else if ($width > 150)
         {
               $width = 150;
               $percent = ($size[0] / $width);
               $height = ($size[1] / $percent);
         }
$user_link = append_sid($phpbb_root_path.'profile.php?mode=viewprofile&u='.$attach_user['user_id']);
echo '<a href="'.$user_link.'">'.$user_attach['username'].'</a><br />
<a href="'.append_sid($phpbb_root_path.'viewtopic.'.$phpEx.'?t='.$topic_id).'"><img src="media/'.$filename.'" alt="" border="0" width="'.$width.'" height="'.$height.'"></a>';
Jetzt alles erfüllt?

Verfasst: 28.11.2005 15:19
von mora
Herzlichen Dank, die wesentlichen Spezifikationen sind erfüllt.

Wobei die Ausgabe des Themenstitel noch eine wundervolle Ergänzung wäre....
...aber das musst du nicht mehr machen, ich kann ja probieren ob ich es auch schaffe obwohl das in keinem Verhältniss zu deiner Arbeitsgeschwindigkeit stehen würde :wink:

Wie dem auch sei: Deine Hilfe ist echt TOP!

monika