Bonjour,

Je souhaite utiliser les jointures SQL pour faire le traitement suivant

Dans ma base de donnée j'ai 2 tables : blocks et blocks_interdit

Dans blocks, j'ai le nom du blocks, sa position ...
Dans blocks_interdit, j'ai le uniquement 2 champs : l'id du block + le nom du module

Mon but : Afficher les blocks uniquement dans les modules autorisés.
Par exemple, j'interdit le block "sondage" sur le module "index",
je veux donc chercher les informations des blocks du module "index" en enlevant ceux qui sont cités dans la table blocks_interdit avec le module "index". Donc dans cet exemple, j'aurais tous les blocks sauf celui du sondage car il sera dans la table blocks_interdit

Voilà ceux que j'ai fait mais ca ne marche pas, tous les blocks s'affichent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
		$select = $this->select();
		$select->where("published = ?", 1); 
		$select->order("ordering"); 
		$select->join('blocks', 'blocks_interdit.bid = blocks.id AND blocks_interdit.module != '.$module.'');
		$blocks = $this->fetchAll($select);
Merci d'avance