I am trying to combine these two queries in Codeigniter. So the row either has to have the user_id of $user eg 3 OR have an id matching the array $repost. I know how to do or_where but how do you do or_where_in?
Thanks
JavaScript
x
$this->db->where("user_id", "$user");
if (isset($conditions["repost"])) {
$user_favourited = $conditions["repost"];
$this->db->where("user_id", $user_favourited);
$this->db->select("post_id");
$this->db->from($this->repost_table);
$query = $this->db->get();
$id['posts'] = $query->result_array();
foreach($id['posts'] as $post) {
$repost[] = $post['post_id'];
}
if (isset($repost)) {
$this->db->where_in('id', $repost);
}
}
Advertisement
Answer
JavaScript
$this->db->or_where_in();
Syntax:
JavaScript
or_where_in([$key = NULL[, $values = NULL[, $escape = NULL]]])
Parameters:
JavaScript
$key (string) – The field to search
$values (array) – The values searched on
$escape (bool) – Whether to escape values and identifiers
Returns:
JavaScript
DB_query_builder instance
Return type:
JavaScript
object
Generates a WHERE field IN(‘item’, ‘item’) SQL query, joined with ‘OR’ if appropriate.
More information here: https://codeigniter.com/userguide3/database/query_builder.html?highlight=or_where_in#CI_DB_query_builder::or_where_in