Modul: Datum des letzten Seiten- bzw. Artikelupdates per SQL-Abfrage

Bei diesem Modul handelt es sich um ein Minibeispiel einer SQL-Abfrage in redaxo.

Das Modul zeigt das Datum des letzten Seiten- bzw. Artikelupdates an.

Zunächst der Quellcode der Moduleingabe:

<p>Einleitender Text:</p>
<input type="text" size="50" name="VALUE[1]" value="REX_VALUE[1]" />
<br />
<br />

Hier wird dem Block im Backend lediglich ein Textfeld für einen einleitenden Text hinzugefügt, der dem Aktualisierungsdatum vorangestellt wird.

Backend: Letztes Update

Interessanter wird da natürlich der Ausgabeteil unseres Moduls:

<?php

$sql = 'SELECT FROM_UNIXTIME(`updatedate`,\'%d.%m.%Y\') AS UpdateDat'
. ' FROM `rex_article` '
. ' ORDER BY `rex_article`.`updatedate` DESC'
. ' limit 1';

$lastUpdate = new sql;
$lastUpdate->setQuery($sql);

echo "<p>REX_VALUE[1] ".$lastUpdate->getValue('UpdateDat')."</p>\n";

?>

Zunächst wird die SQL-Abfrage formuliert, die aus der MySQL-Tabelle ‘rex_article’ das aktuellste Datum eines Datensatzes ausliest.

SELECT FROM_UNIXTIME(`updatedate`,\'%d.%m.%Y\') AS UpdateDat
FROM `rex_article`
ORDER BY `rex_article`.`updatedate` DESC
limit 1;

Zunächst wird das Unixdatum in der Spalte ‘updatedate’ mit der MySQL-Funktion FROM_UNIXTIME in ein Datum in der Form tt.mm.JJJJ umgewandelt und mit dem ALIAS ‘UpdateDat’ versehen.
Dann wird das Ergebnis der Abfrage durch ORDER BY … DESC absteigend sortiert und per LIMIT 1 dafür gesorgt, dass nur noch eine Ergebniszeile aus der Abfrage übrig bleibt, nämlich die mit dem jüngsten Datum.

Dann wird ein neues SQL-Objekt generiert und die Abfrage mit

$lastUpdate->setQuery($sql);

ausgeführt.

Zu guter letzt sorgt die Zeile

echo "<p>REX_VALUE[1] ".$lastUpdate->getValue('UpdateDat')."</p>\n";

für die Ausgabe des Datums in der Form:

Letztes Update: 14.06.2017