Connessione a database con Codeigniter
In un altro articolo ho parlato di come creare un sistema di login con Codeigniter (CI).
Non ho molto approfondito la questione connessione a database e query.
Lo faccio oggi.
Dando sempre per scontato che l'installazione sia andata a buon fine, partiamo dalla configurazione di base.
In application -> config -> autoload.php:
$autoload['libraries'] = array('database');
Poi i parametri di connessione al db (che suppongo sia Mysql) in application -> config -> database.php:
$db['default']['hostname'] = 'YOUR_HOST;
$db['default']['username'] = 'YOUR_USER';
$db['default']['password'] = 'YOUR_PWD';
$db['default']['database'] = 'YOUR_DB';
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Mettete i vostri parametri e dovreste stare a posto.
A questo punto passiamo al controller:
<?php
// home.phpclass Home extends CI_Controller {
public function index() {
$this->load->model('home_model');
$data = array();
$data['titolo'] = 'Banca';
$data['entrate'] = $this->home_model->getEntrate();
$this->load->view('header', $data);
$this->load->view('home_view', $data);
$this->load->view('footer');
}}
Prima di tutto carichiamo il relativo model che gestisce le query.
Carichiamo i vari dati da passare alla view.
$data['entrate'] verrà caricata con i dati presi dalla funzione getEntrate() che si trova nel model e che esegue la query.
Questo il model:
<?php
// home_model.phpclass Home_model extends CI_Model {
public function getEntrate() {
$this->db->select('*');
$this->db->from('entrate');
$this->db->join('causali', 'entrate.causale_id = causali.causale_id');
$this->db->join('conti', 'entrate.conto_id = conti.conto_id');
$this->db->order_by('entrata_data', 'desc');
$this->db->limit(50);
$query = $this->db->get();
return $query->result();
}}
C'è una sola funzione che esegue la query.
Prima indichiamo i campi da prelevare (in questo caso tutti).
Poi indichiamo la tabella.
Poi ci sono due join, l'ordinamento e il limit.
Insomma già qua potete vedere la maggior parte delle cose utili.
Manca solo il where.
La funzione ritorna il risultato della funzione get(), ed è un array.
Questo array lo scandagliamo nella view:
// home_view.php
<?php foreach ($entrate as $var): ?>
<tr>
<td><?php echo $var->entrata_valore; ?></td>
<td><?php echo $var->causale_nome; ?></td>
<td><?php echo $var->conto_nome; ?></td>
<td><?php echo $var->entrata_data; ?></td>
<td><?php echo $var->entrata_note; ?></td>
</tr>
<?php endforeach; ?>
Un pò diverso dal PHP classico.
Però direi che dovreste stare a posto.
php codeigniter query
Commentami!