Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2013, 10:34
taoshi
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 17 años, 3 meses
Puntos: 0
Problemas para escapar comillas simples en una consulta

Hola buenas lo que trato de hacer es una especie de consulta dinamica ya que se puede buscar por una o por varias categorias lo que me lleva a tener 1 o varios

Código PHP:
OR tipo_ruta LIKE % 
Bien segun el numero de checkbox que lleguen se iran concatenando

El codigo es:

Código PHP:
if(isset($_REQUEST['actividades']))
{
$coma = ' OR tipo_ruta LIKE \'%'; 
$consulta = ""; 
foreach (
$_REQUEST['actividades'] as $actividad){
$consulta .= $coma . $actividad . '%\' '; 
 
} 
El codigo es bastante simple va a ir con catenando para dar un resultado como este

Código PHP:
 OR tipo_ruta LIKE '%Mountain bike%' OR tipo_ruta LIKE '%nadar%' OR tipo_ruta LIKE '%correr%' 
Con lo cual solo tendria que poner la variable $consulta donde tocase

Código PHP:
$selectbuscar = 'SELECT v_ruta.id_ruta, v_ruta.nombre, login_usuario, v_ruta.descripcion, tipo_ruta, kms, dificultad, puntos_descripcion, puntos_imagenes, puntos_coordenadas, totalpuntos FROM v_ruta WHERE v_ruta.nombre LIKE \'%' . mysqli_real_escape_string($conexion, $termino) . '%\' OR v_ruta.descripcion LIKE \'%' . mysqli_real_escape_string($conexion, $termino) . '%\' ' . mysqli_real_escape_string($conexion, $consulta) . ' '; 
Pero me la interpreta de este modo:

SELECT v_ruta.id_ruta, v_ruta.nombre, login_usuario, v_ruta.descripcion, tipo_ruta, kms, dificultad, puntos_descripcion, puntos_imagenes, puntos_coordenadas, totalpuntos FROM v_ruta WHERE v_ruta.nombre LIKE '%%' OR v_ruta.descripcion LIKE '%%' OR tipo_ruta LIKE \'%Mountain bike%\'


Dejando las barras invertidas, he probado de mil formas con comillas doble simples unas dentro de las otras y al contrario, quitando, poniendo y nada no lo consigo.