Bonjour,

Je travail sur Codeigniter, je me retrouve confronter a un léger problème qui me bloque depuis quelques jours.

Voila j'ai un systeme de jeu de culture général avec des paramètres à sélectionner avant de jouer(matières et tags).

Je veux une fonction qui me retourne le nombre de questions existantes en fonction des paramètres que j'ai choisi.

J'ai ceci :

$this->db->select('questions.id')
            ->join('parametre_matieres', 'parametre_matieres.id_matiere = questions.matiere')
            ->join('questions_tags','questions_tags.question_id = questions.id')
            ->join ('parametre_tags','parametre_tags.id_tags = questions_tags.tag_id')
            ->where('questions.online',1)
            ->from('questions');

$count = $this->db->count_all_results();
return $count;

Voici mes tables :

Table questions :
id (Primaire) int(11)
question varchar(255)
image varchar(255)
matiere varchar(255)
type varchar(255)
tags int(11)
online int(11)
fait int(11)

Table tags :
id (Primaire) int(11)
name varchar(255)

Table questions_tags :
id(Primaire) int(11)
question_id int(11)
tag_id int(11)

Table parametre_tags :
id (Primaire) int(11)
gs int(11)

Le problem est que le nombre retourné dans ma requete est faux si une question possede plusieurs tags...

Exemple: J'ai selectionner une seul matiere qui ne possede qu'une question mais 2 tags, le nombre devrait donc etre 1 mais cela affiche 2. :'(

Un peu d'aide serait la bienvenue ;)

2 réponses


philippemilink
Réponse acceptée

Salut,
Je pense qu'il faut que tu fasses un select distinct, parce là ça te retourne une ligne par tag.
J'ai trouvé ceci en chechant sur Google:
https://stackoverflow.com/questions/656622/codeigniter-how-to-do-a-select-distinct-fieldname-mysql-query

juju.92
Auteur

Super merci pour ta réponse phillippemilink, cela a résolu mon problème ;)