Je vais avoir quelques problèmes pour trouver CodeIgniter dossier actif pour produire une requête comme ceci:Comment écrire une requête dans CodeIgniter active Enregistrement
SELECT fruits.* FROM fruits
WHERE fruits.color = 'red'
AND (fruits.size = 'medium' OR fruits.name = 'kiwi' OR fruits.length = 7);
Fondamentalement, je veux avoir plusieurs ou clauses, mais une clause where qui est toujours appliqué.
$this->db->select('fruits.*');
$this->db->from('fruits');
$this->db->where('fruits.color', 'red');
$this->db->or_where('fruits.size', 'medium');
$this->db->or_where('fruits.name', 'kiwi');
$this->db->or_where('fruits.length', 7);
produit quelque chose comme:
SELECT fruits.* FROM fruits WHERE fruits.color = 'red' OR fruits.size = 'medium' OR fruits.name = 'kiwi' OR fruits.length = 7;
J'ai besoin de faire respecter cette couleur est toujours rouge.
Existe-t-il un moyen décent de le faire?
Ouais, ce que je pensais. Malheureusement ma requête actuelle a un tas de ou_where_in plutôt que juste ou_où .... donc si je construis une chaîne personnalisée où je pourrais tout aussi bien écrire toute la requête en SQL brut à ce point:/ Merci pour l'entrée. – Anon
C'était l'un des inconvénients de CodeIgniter, surtout maintenant que j'utilise Yii qui est de la pure OOP, je le remarque encore plus. Sinon, une solution serait de créer votre propre fonction pour gérer cela, ou pour remplacer la classe db. – Weboide