Salve a tutti,
sto facendo un gestionale con php, a livello amatoriale. Vi spiego come è strutturato in maniera rapida:
ho una tabella, turni_svolti, con i seguenti campi: id, id_utente, id_ambiente, settimana, data.
Premetto che sto usando un framework, CodeIgniter, ma sono ancora un novellino.
Con queste righe di codice:
Codice PHP:
class turni_model extends CI_Model
{
public function turni_settimanali($num_sett)
{
$result = $this->db->get_where('turni_svolti', array('settimana' => $num_sett));
$array = array();
if ($result->num_rows() > 0){
foreach ($result->result() as $row)
{
if($row->id_utente == 1){
$array['alberto'] = array(
'id_utente' => $row->id_utente,
'id_ambiente' => $row->id_ambiente.'.png',
'data' => date("d/m", strtotime($row->data))
);
}else{
$array['alberto'] = array(
'id_ambiente' => '0.gif',
'data' => 'nessuno'
);
}
if($row->id_utente == 2){
$array['gaetano'] = array(
'id_utente' => $row->id_utente,
'id_ambiente' => $row->id_ambiente.'.png',
'data' => date("d/m", strtotime($row->data))
);
}else{
$array['gaetano'] = array(
'id_ambiente' => '0.gif',
'data' => 'nessuno'
);
}
if($row->id_utente == 3){
$array['giulio'] = array(
'id_utente' => $row->id_utente,
'id_ambiente' => $row->id_ambiente.'.png',
'data' => date("d/m", strtotime($row->data))
);
}else{
$array['giulio'] = array(
'id_ambiente' => '0.gif',
'data' => 'nessuno'
);
}
if($row->id_utente == 4){
$array['salvatore'] = array(
'id_utente' => $row->id_utente,
'id_ambiente' => $row->id_ambiente.'.png',
'data' => date("d/m", strtotime($row->data))
);
}else{
$array['salvatore'] = array(
'id_ambiente' => '0.gif',
'data' => 'nessuno'
);
}
}
}else{
$array['alberto'] = array(
'id_ambiente' => '0.gif',
'data' => 'nessuno'
);
$array['gaetano'] = array(
'id_ambiente' => '0.gif',
'data' => 'nessuno'
);
$array['giulio'] = array(
'id_ambiente' => '0.gif',
'data' => 'nessuno'
);
$array['salvatore'] = array(
'id_ambiente' => '0.gif',
'data' => 'nessuno'
);
}
return $array;
}
}
Mi sistemo in array tutti i dati prelevati dal db, nel caso in cui un dato corrispondente ad una persona non è stato trovato viene settato un array neutro.
Ecco i miei 2 dubbi/problemi.
1)Esiste un altro modo per sistemare i dati prelevati, senza dover ripetere tutte quelle volte il ciclo if? Anche cambiando la logica di conservazione.
2)E poi in questo codice ho notato che se esistono più turni effettuati nella stessa data mi popola l'array solo con un record(l'ultimo).
Non sono sicuro di essere stato chiarissimo, spero abbiate capito!!
Grazie mille Anticipatamente
Saluti Satore11