pragmaMx Support Forum

pragmaMx => integrierte Module => Thema gestartet von: KeinenPlan am 25 Juli 2005, 21:31:16

Titel: My_eGallery - Block letzte Kommentare ...
Beitrag von: KeinenPlan am 25 Juli 2005, 21:31:16
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!
Titel: Re: My_eGallery - Block letzte Kommentare ...
Beitrag von: jubilee am 26 Juli 2005, 09:44:46
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
Titel: Re: My_eGallery - Block letzte Kommentare ...
Beitrag von: KeinenPlan am 26 Juli 2005, 15:35:14
Leider hat das nicht den gewünschten Erfolg!
Muss ich noch irgendwie den Block aktualisieren ? Oder liegt es an was anderem ?
Titel: Re: My_eGallery - Block letzte Kommentare ...
Beitrag von: jubilee am 26 Juli 2005, 19:01:36
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
Titel: Re: My_eGallery - Block letzte Kommentare ...
Beitrag von: KeinenPlan am 26 Juli 2005, 21:11:26
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) ...
Titel: Re: My_eGallery - Block letzte Kommentare ...
Beitrag von: reddragon am 27 Juli 2005, 00:31:51
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....