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 ;)
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