My_eGallery - Block letzte Kommentare ...

Begonnen von KeinenPlan, 25 Juli 2005, 21:31:16

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

KeinenPlan

Ich habe gesucht, aber nicht wirklich was gefunden.

Also folgendes:
Ich habe mal einen Block aufgespielt, der mir die letzten Bilder auf der Startseite anzeigt, die kommentiert wurden.
Nun gut, läuft sehr gut, nur, wird z.B. ein Bild mehrmals hintereinander kommentiert erscheint dieses Bild eben mehrmals. Ich will aber eben nur die 4 zulrtzt kommentierten Bilder, und nicht die 4 letzten Kommentare.
War das klar ausgedrückt, oder irgendwie missverständlich ?

Hier mal der Code, den ich verwende bisher:

<?php
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
global $prefix;
include 'admin/modules/gallery/config.php';
$query="SELECT * FROM ".$prefix."_gallery_pictures AS p LEFT JOIN ".$prefix."_gallery_categories AS c ON c.gallid=p.gid LEFT JOIN ".$prefix."_gallery_comments AS k ON k.pid=p.pid WHERE ((c.visible >0)AND(k.date!='')) ORDER BY k.date DESC LIMIT 0,4";
$result=sql_query($query);
$content = "<center><table width=\"500\"><tr><td>";
   while ($pic = sql_fetch_array($result))
   {
      $image = "".$gallerypath."/".$pic['galloc']."/thumb/".$pic['img']."";
      $content.= "<table><tr><td><center><a href=\"".$baseurl."&do=showpic&amp;pid=".$pic['pid']."\"><img src=\"".$image."\" width=\"120\" border=\"0\" alt=\"".$pic['name']."\"></a></td></tr>";
      $content.="<tr><td>".$pic['date']."</center></td></tr></table>";
      $content.="</td><td>";
   }
$content.="</td></tr></table></center>";
?>

Wird nun ein mehrfach Bild kommentiert, sieht man es mehrfach, und genau das will ich eben vermeiden!
Was muss ich da ändern?

Viele Grüsse und vielen Dank schonmal im vorraus!

jubilee

Hallo !
So sollte die Query funktionieren.
Bitte gegen die Originalquery austauschen

Zitat$query="SELECT * FROM ".$prefix."_gallery_pictures AS p LEFT JOIN ".$prefix."_gallery_categories AS c ON c.gallid=p.gid LEFT JOIN ".$prefix."_gallery_comments AS k ON k.pid=p.pid WHERE ((c.visible >0)AND(k.date!='')) Group by k.date order by k.date DESC LIMIT 0,4";

MfG
jubilee

KeinenPlan

Leider hat das nicht den gewünschten Erfolg!
Muss ich noch irgendwie den Block aktualisieren ? Oder liegt es an was anderem ?

jubilee

Hallo !
Versuch das einmal :
Zitat
$query="SELECT * FROM ".$prefix."_gallery_pictures AS p LEFT JOIN ".$prefix."_gallery_categories AS c ON c.gallid=p.gid LEFT JOIN ".$prefix."_gallery_comments AS k ON k.pid=p.pid WHERE ((c.visible >0)AND(k.date!='')) Group by p.pid order by k.date DESC LIMIT 0,4";

ZitatLeider hat das nicht den gewünschten Erfolg!
BTW. Du hast im Blocks-Admin für den entsprechenden Block unter
Aktualisieren nach: doch nicht etwa eine Cache-Zeit eingestellt. Wenn ja, aktualisiert sich der Block erst NACH ablauf dieser Zeit.
MfG
jubilee

KeinenPlan

Mhh, geht auch nicht.
Aber diesmal tut sich was, irgendwie werden scheinbar andere Bilder anzeigt, die auch kommentiert wurden, aber nicht die aktuellesten ?!

Und ja, das mit dem Aktualisieren steht natürlich auf "nie" (oder wie doe "Sofort-Aktualisierung" lautet) ...

reddragon

hmmm...   ein toller Script!   (Damit könnte man als Admin die aktuellsten Kommentare überwachen ;D)

Ich habe nich soo viel Ahnung, und wurste mich auch gerade rein, aber ich könnte mir vorstellen, dass es mit einem "If-else" funktioniert.

Wenn man nach der $querry folgendes einbaut:

If   

Wenn  "pid" steht für die Bildnummer 2 mal unter den ersten 4 steht, dannlass eins wegfallen, und nehm den fünftaltuellsten mit rein

else

nehm nur die vier neusten  (wie bislang)


Wie das nun als code gemeint ist weiß ich nicht...

da seit ihr am zug....