Elxisitalia.com!
Il portale sull'open source Elxis CMS.

italian english

Lavorare su database Elxis CMS

Email

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.

Uso generale

Ogni transazione con il database di Elxis possono essere eparate in tre steps:

  1. 1. Scrivere la query e memorizzarla un una variabile PHP da usare più tardi:
    Example: $query = "SELECT * FROM #__users";
  2. 2. Usare una funzione speciale chiamata  "setQuery" la quale preparerà la query che deve essere esguita nel database:
    Example: $database->setQuery($query);
  3. 3. Eseguire la query (ed estrapolare I risultati se lo si desidera
    Example: $database->query();

Note

  • Il prefisso della tabella nella nostra query dovrebbe essere scritta con "#__". La funzione setQuery la convertirà automaticamente con il prefisso che l’amministratore a scelto in fase di installazione (di default è “elx_”).
  • Se si desidera ottenere un specifico numero di risultati bisogna usare:
    $database->setQuery($query, '#__', limit, limit_start);
    Example: $database->setQuery($query, '#__', 10, 0);
    Non si dovrebbe mai usare LIMIT o qualcosa di simile direttamente nella query perché romperà il supporto cross-database!
  • Se la query è corta si può memorizzarla direttamente nella setQuery e saltare il passo 1:
    Example: $database->setQuery("SELECT * FROM #__users ORDER BY name ASC", '#__', 5, 0);

Ricavare un risultato singolo

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.

Ricavare una lista di risultati

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.

Ricavare una riga singola

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.

Ricavare un elenco di righe

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.

Ricavare una singola riga come oggetto

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.

Ricavare un elenco di righe come oggetto

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.

Loop dentro I risultati

for ($i=0; $i<count($rows); $i++) {
$row = $rows[$i];

//I campi nella riga sono accessibili come: $row->username, $row->name, etc.
}

Update database

$query = "UPDATE #__users SET name='George Papas', avatar='mypic.png' WHERE id='34'";
$database->setQuery($query);
$database->query();

Cancellare righe dal database

$database->setQuery("DELETE FROM #__users WHERE id='78'");
$database->query();

Ricavare records casuali dal the database

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.

Conteggio delle righe

$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

Sondaggi

Quali estensioni desideri?

Risultati

Accesso Utente





Non hai ancora un Profilo? Crea Profilo

Chi è online

Abbiamo 26 ospiti online
Valid XHTML 1.0 Transitional!
CSS Valido!
RSS 0.91
RSS 1.0
RSS 2.0
ATOM 0.3
OPML