Hallo,
ich möchte gern in Contao 2.10.x bei Seitenaufruf einen zufälligen Kommentar (aus dem Gästebuch) ausgeben lassen und hab' Probleme damit. Ich hab' die folgende DB-Abfrage aus einer ähnlichen und funktionierenden Aufgabenstellung genommen und die sollte eigentlich auch funktionieren. Es wird aber außer ": " nichts ausgegeben. In der Tabelle stehen auch Kommentare drin, sie ist nicht leer.
Das ORDER BY RAND() LIMIT 1 hab' ich hinzugefügt, um die Zeilen durchzumischen und dann nur die erste Zeile ausgeben zu lassen.
PHP-Code:
<?php
$this->import('Database');
$objDatensatz = $this->Database->prepare("SELECT * FROM tl_comments WHERE published=1 AND parent=? ORDER BY RAND() LIMIT 1")->execute($this->id);
echo $objDatensatz->name . ': ' . $objDatensatz->comment . '<br />';
?>
Bin über Hinweise dankbar!
EDIT:
Wenn es auf der Website nur Kommentare einer Quelle (einer Seite wie ein Gästebuch) gibt und sonst keinerlei Kommentare für andere Seiten, funktioniert folgender Code meinen Tests nach. Das ist nicht elegant, funktioniert aber. Den Code kann man über ein Modul ins Seitenlayout einbinden.
PHP-Code:
$objDatensatz = $this->Database->prepare("SELECT * FROM tl_comments WHERE published=1 ORDER BY RAND()")->limit(1)->execute($this->id);
echo $objDatensatz->name . ': ' . $objDatensatz->comment . '<br />';
Danke an do_while und lindesb für ihre Hilfe.
Lesezeichen