Foros del Web » Programando para Internet » PHP »

Operadores de comparacion en sentencia PREPARE

Estas en el tema de Operadores de comparacion en sentencia PREPARE en el foro de PHP en Foros del Web. Buenas! Soy novato en esto del PHP/SQL y me estoy volviendo tonto intentando conseguir que funcione parte de un código que estoy desarrollando. Lo que ...
  #1 (permalink)  
Antiguo 11/12/2015, 01:59
 
Fecha de Ingreso: diciembre-2015
Mensajes: 2
Antigüedad: 8 años, 11 meses
Puntos: 0
Pregunta Operadores de comparacion en sentencia PREPARE

Buenas! Soy novato en esto del PHP/SQL y me estoy volviendo tonto intentando conseguir que funcione parte de un código que estoy desarrollando.

Lo que me falla es esto:

$clauses['where'] .= $wpdb->prepare( " AND tabla1.variable1 LIKE '%s')) ", $param1);

Busco que, tras haber seleccionado ciertas partes de una tabla (tabla1) con $clauses['join'] .= $wpdb->prepare( " LEFT JOIN ( SELECT etc etc... , me muestre aquellas filas de la variable1 que CONTENGAN el texto del $param1.

Según lo tengo ahora mismo (...AND tabla1.variable1 LIKE '%s') lo que hace es mostrar aquellas que COINCIDE EXACTAMENTE con la variable param1. Y así funciona bien. Pero como quiero que muestre las que la contengan, y no solo las que coincidan exactamente, he probado a poner (..AND tabla1.variable1 LIKE '%%s%'), es decir, el parametro entre los operadores %%, ya que he visto que estos actuan como comodín. Se supone que debería funcionar, pero lo que hace ahora es seleccionar TODAS las filas de la tabla, contengan o no el parametro buscado.

PREGUNTA: Alguien puede decirme cómo ponerlo para que me muestre las que CONTENGAN el valor del parámetro (no las que sean exactamente igual, ni todas las filas) ??

MIL GRACIAS!!
  #2 (permalink)  
Antiguo 11/12/2015, 12:51
 
Fecha de Ingreso: diciembre-2015
Mensajes: 2
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Operadores de comparacion en sentencia PREPARE

Hola, ya he conseguido solucionarlo... :D

Por si a alguien más le pasa, dentro de una sentencia $wpdb->prepare (Wordpress) el comodín % se ha de poner doble (esto es, %%) para que lo entienda. Si no, no lo considera como comodín.

El código quedaría así:

$clauses['where'] .= $wpdb->prepare( " AND (tabla1.meta_value LIKE '%%%s%%') ", $param1);

Etiquetas: comparacion, operadores, select, sentencia, sql, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:51.