Darf ich mal kurz vorstellen: JDatabase

Genau wie WordPress bringt auch Joomla ein eigene Logik für Operationen auf der Datenbank mit, nachlesen kann man das en Detail in der Joomla Dokumentation zum Thema JDatabase. Wir wollen uns für den Anfang mal vornehmen, bestimmte Daten aus einer Joomla-Tabelle in einem Artikel auszugeben. Zum Thema Select schauen sie mal hier in die JDatabase-Dokumentation.

Die Ausgangstabelle: contents

Wir holen uns mal zum Üben ein paar Datensätze aus der (prefix)_contents. Um das Tabellenpräfix nicht fest verdrahten zu müssen, benutzt man die eingebaute Variable #, der Select sieht dann so aus:

SELECT * FROM #__content

Das Datenzugriffsobjekt

Die folgende Syntax erzeugt ein neues Datenzugriffsobjekt in der Variablen $db:

$db = JFactory::getDBO();

Jetzt bauen wir uns eine Variable für den Select:
$query = „SELECT * FROM #__content;“;

Und weisen diese dem Datenzugriffsobjekt als Query zu
$db->setQuery($query);

Ausgeführt wird dieses Statement dann mit der Zuweisung
$result = $db->execute();

Erste Information: wieviele Datensätze wurden selektiert?

Das kommt einem doch sehr bekannt vor:

$anzahl_zeilen = $db->getNumRows();
echo $anzahl_zeilen.“ Zeilen selektiert<br>“;

Zeilenweise Ausgabe bestimmter Spalten des Select-Ergebnisses

Wir wollen ja nicht die ganze Tabelle #__contents ausgeben, sondern nur ausgewählte Spalten, ich nehme mal fürs Beispiel die ID, den Title und den Alias. Dafür holen wir uns die ausgewählten Datensätze als Liste von Objekten, durch die wir nachher einfach iterieren können:

$results = $db->loadObjectList();

In der Object List stecken die einzelnen Datensätze des Select-Ergebnisses, und deren Spalten kann man mit dem Namen ansprechen. Wir packen das Ganze wie schon oft gehabt in eine Foreach-Anweisung, das sieht dann so aus:

foreach ($results as $zeile) :
echo $zeile->id;
echo $zeile->title;
echo $zeile->alias;
echo „<br>“;
endforeach;

Ihre Ausgabe sollte jetzt so etwas in der Art gleichsehen:

liste_content

liste_content

Zugegeben, an der Formatierung ist noch einiges optimierbar, aber wir haben das Ergebnis unseres Select jetzt als Liste in den Artikel eingefügt. Doch schon mal nicht schlecht für den Anfang, darauf kann man aufbauen.

Weitere Datenbankoperationen

Zu den weiteren Operationen wie Insert, Update und Delete gibt es hier tieferschürfende Informationen:

Inserting, Updating and Removing data using JDatabase

Konnektieren zu einer externen Datenbank

Auch das ist genau wie in WordPress  möglich, nähere Informationen findet man hier:

Connecting to an external database

Damit lasse ich es mal gut sein mit den Datenbankoperationen. Jetzt wirds Zeit, mal ein bisschen die Stammdaten von Joomla zu durchforsten, und dazu gibt es einen neuen Beitrag.