La cosa es que va todo bien hasta que trato de hacer una consulta con condicionales para un motor de búsqueda.
La función es
Código PHP:
Ver original
public function getAll($ini = 0, $nreg = 25, $condition = '', $restricted = NULL) { $this->query = "SELECT DISTINCT r.id AS id, r.number AS number FROM request_unit AS ru INNER JOIN request AS r ON ru.order_form_id = r.id INNER JOIN transformer AS tx ON ru.transformer_id = tx.id INNER JOIN power AS p ON tx.power_id = p.id INNER JOIN voltage AS v ON tx.voltage_id = v.id INNER JOIN type AS t ON tx.types_id = t.id "; $this->query .= "ORDER BY r.date_created DESC LIMIT $ini, $nreg"; $this->query .= "WHERE r.user_id = $restricted ORDER BY r.date_created DESC LIMIT $ini, $nreg"; $this->query .= "WHERE (CONCAT(p.power_value,'kVA ',v.voltage_name,'V') LIKE '%$condition%') OR (t.type_name LIKE '%$condition%') OR (r.`comment` LIKE '%$condition%') OR (ru.notes LIKE '%$condition%') OR (r.date_created LIKE '%Intempeerie%') ORDER BY r.date_created DESC LIMIT $ini, $nreg"; $this->query .= "WHERE ((CONCAT(p.power_value,'kVA ',v.voltage_name,'V') LIKE '%$condition%') OR (t.type_name LIKE '%$condition%') OR (r.`comment` LIKE '%$condition%') OR (ru.notes LIKE '%$condition%') OR (r.date_created LIKE '%Intempeerie%')) AND r.user_id = $restricted ORDER BY r.date_created DESC LIMIT $ini, $nreg"; } $this->get_results_from_query(); //$this->mensaje = $this->query; $data = $this->rows; //$this->mensaje = 'La busqueda arroja resultados'; } else { //$this->mensaje = 'La busqueda no arroja resultados'; } return $data; }
Esta función pertenece a una clase que se llama request que extiende una clase abstracta como la que se muestra en la literatura del link.
La función que hace la consulta en cuestión es
Código PHP:
Ver original
protected function get_results_from_query() { $this->open_connection(); $result = $this->conn->query($this->query); while ($this->rows[] = $result->fetch_assoc()); $result->close(); $this->mensaje = $this->conn->error; $this->close_connection(); }
Probé la sentencia MySQL que resulta del condicional en PHPMyAdmin y da resultado.
Probé con una salida justo antes del array_pop (colocando $this->mensaje = $this->rows) y me da resultado, el problema es que si quito el array_pop de la linea 8, me trae consecuencia en las otras que he hecho por lo que supongo que algo anda mal con mi función pero no logro identificar el problema.
Agradeceria mucho la ayuda