Codeigniter 'where` et `or_where`
Je suis en train de spécifier une requête dans mon modèle
$this->db
->select('*')
->from('library')
->where('library.rating >=', $form['slider'])
->where('library.votes >=', '1000')
->where('library.language !=', 'German')
->where('library.available_until >=', date("Y-m-d H:i:s"))
->or_where('library.available_until =', "00-00-00 00:00:00")
->where('library.release_year >=', $year_start)
->where('library.release_year <=', $year_end)
->join('rating_repo', 'library.id = rating_repo.id')
Donc, la peine que je vais avoir, c'est avec mon or_where
. Je veux le or
être limitée à la available_until
champ. Actuellement, cependant, j'obtiens des résultats qui ont l'allemand comme langue qui n'est pas ce que je veux. Comment puis-je limiter mes or_where
filtre à l' available_until
champ?
source d'informationauteur garethdn
Vous devez vous connecter pour publier un commentaire.
Vous pouvez modifier les deux lignes:
EDIT:
En omettant les
FALSE
paramètre aurait placé les backticks avant les crochets et en faire une partie du nom de la table/valeur, en faisant la requête inutilisable.La
NULL
paramètre est là tout simplement parce que la fonction nécessite le second paramètre à une valeur, et depuis nous n'en avons pas, nous envoyer NULL.Vous pouvez modifier votre code:
Astuce: pour regarder la requête générée, vous pouvez utiliser $this->db->last_query();
Vous pouvez regrouper vos de la bibliothèque.available_until wheres de la zone par groupement méthode de Codeigniter pour sans désactiver échapper les clauses where.
Référence: https://www.codeigniter.com/userguide3/database/query_builder.html#query-grouping