Il database in Elxis CMS è accessibile globalmente tramite l’oggetto $database. Nelle righe sottostanti sono riportate la librerie ADOdb per manipolare i differenti tipi di database che Elxis CMS supporta. Non è necessario che voi studiate ADOdb per poter lavorare con Elxis CMS. L’importante che sappiate scrivere le stringhe native SQL e ADOdb farà tutto in automatico rendendo il tutto compatibile con ogni tipo di database che Elxis CMS supporta. Questa breve guida vi mostra alcuni esempi.
Ogni transazione con il database di Elxis possono essere eparate in tre steps:
Note
Questa è la query più semplice. Recuperare un risultato singolo dal database
$query = "SELECT username FROM #__users WHERE id='62'";
$database->setQuery($query, '#__', 1, 0);
$result = $database->loadResult();
Ritornerà admin o falso se nessun il risultato è trovato.
Simile a quella sopra ma in questo caso di desidera ricavare un elenco di risultati:
$query = "SELECT username FROM #__users";
$database->setQuery($query);
$rows = $database->loadResultArray();
Ritornerà un array di usernames or false se nessun risultato è trovato.
Per ricavare una singola riga dal database:
$query = "SELECT * FROM #__users WHERE id='62'";
$database->setQuery($query, '#__', 1, 0);
$row = $database->loadRow();
Ritornerà un risultato singolo come un array di tutti i campi o false se nessun risultato è trovato.
Per ricavare un elenco di righe dal database:
$query = "SELECT * FROM #__users";
$database->setQuery($query, '#__', 10, 0);
$rows = $database->loadRowList();
Ritornerà un elenco di righe come array muti-dimensionale o false se nessun risultato è stato trovato.
Per ricavare una singola riga dal database:
$query = "SELECT * FROM #__users WHERE id='62'";
$database->setQuery($query, '#__', 1, 0);
$database->loadObject($row);
Ritornerà un risultato singolo come oggetto tutti I campi in tabella o false se nessun risultato è stato trovato.
Gli elemti oggetto sono accessibili come: $row->name, $row->username, etc.
Per ricavare un elenco di righe come oggetto dal database:
$query = "SELECT * FROM #__users";
$database->setQuery($query, '#__', 10, 0);
$rows = $database->loadObjectList();
Ritornerà un array di oggetti o false se nessun risultato è stato trovato.
for ($i=0; $i<count($rows); $i++) {
$row = $rows[$i];
//I campi nella riga sono accessibili come: $row->username, $row->name, etc.
}
$query = "UPDATE #__users SET name='George Papas', avatar='mypic.png' WHERE id='34'";
$database->setQuery($query);
$database->query();
$database->setQuery("DELETE FROM #__users WHERE id='78'");
$database->query();
Per non rompere il cross-database noi useremo la variabile "random" dell'ADOdb che è messa automaticamente da ADOdb durante l'avvio di Elxis.
$query = "SELECT * FROM #__users ORDER BY ".$database->_resource->random;
$database->setQuery($query, '#__', 10, 0);
$rows = $database->loadObjectList();
Nota: $database->_resource consente il diretto accesso a ADOdb.
$database->setQuery("SELECT COUNT(id) FROM #__users");
$counter = intval($database->loadResult());
Ritornerà integer or 0 se nessun risultato è stato trovato.
Traduzione by Speck - Elxisitalia.com
Testo in lingua originale di Elxis.org