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:
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.