Salut @ tous !
Je n'arrive pas à comprendre comment faire des jointures avec Datamapper et Codeigniter 2.1.2
J'ai la table users qui a les champs suivants :
- id
- pseudo
une 2ème table usersoptions qui a les champs suivants :
- id
- id_user
- name_option
- value_option
et une 3ème table pour la liaison users_usersoptions :
- id
- users_id
- usersoptions_id
Voilà ou j'en suis avec le contrôleur User :
class User extends DataMapper
{
var $has_many = array('users_usersoptions');
function __construct($id = NULL)
{
parent::__construct($id);
}
function get_users_inline($id)
{
$u = new User();
$r = $u->get_where(array('last_activity <' => (time() - 120)));
return $r->id;
}
}
Celui-ci récupère id des uers dont le timestamp en BDD est inférieur au timestamp actuel - 2 minutes.
Comment faire pour vérifier également que dans la table usersoptions il n'existe aucune entrée ayant le nom inline ayant la valeur "oui"?
Avec Active Record ça donnerait quelque chose comme :
$this->db->select('users.id')->join('usersoptions', 'usersoptions.id_user = users.id')->where('name_option', 'inline')->where('value_option !=', 'oui');
$query = $this->db->get('users');
return $query->num_rows();
Merci de m'aider