Foros del Web » Programando para Internet » PHP »

Consulta que contenga la palabra

Estas en el tema de Consulta que contenga la palabra en el foro de PHP en Foros del Web. Que tal como estan, tengo una consulta en PHP que es la siguiente Código PHP: $result   =  mysql_query ( "SELECT idpvcli, numcli, nomcli, rfccli FROM pvclientes WHERE numcli='" . $_POST [ 'buscar' ]. ...
  #1 (permalink)  
Antiguo 18/04/2012, 17:12
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Consulta que contenga la palabra

Que tal como estan, tengo una consulta en PHP que es la siguiente

Código PHP:
$result  mysql_query("SELECT idpvcli, numcli, nomcli, rfccli FROM pvclientes WHERE numcli='".$_POST['buscar']."' or nomcli='".$_POST['buscar']."'",$link); 
la cual me funciona bien, pero lo que deseo hacer es que por decir si yo introduzco la palabra de Gasolineria en mi busqueda me muestre todos los registro que contengan esa palabra

es decir Gasolineria ABC, gasolineria GTG, etc etc.... , y ahorita mi buesuqeda es exacta tengo que introducir el nombre completo por que sino no me la hace........

de antemno muchas gracias por la ayuda

Saludos !!!
  #2 (permalink)  
Antiguo 18/04/2012, 17:49
Avatar de ylellan  
Fecha de Ingreso: mayo-2010
Ubicación: en un lugar de Veracruz
Mensajes: 432
Antigüedad: 13 años, 10 meses
Puntos: 36
Respuesta: Consulta que contenga la palabra

mejor usa una consulta con like mi vida.
  #3 (permalink)  
Antiguo 18/04/2012, 17:55
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Consulta que contenga la palabra

Usar Like en lugar de = ???

pero me haria lo mismo la consulta con la palabra exacta sino no la haria no????
  #4 (permalink)  
Antiguo 18/04/2012, 19:31
 
Fecha de Ingreso: noviembre-2011
Ubicación: 127.0.0.1
Mensajes: 8
Antigüedad: 12 años, 5 meses
Puntos: 3
Respuesta: Consulta que contenga la palabra

añadir a lo dicho por ylellan que puedes utilizar expresiones regulares utilizando regexp o iregexp.

p. ej.

$result = mysql_query("SELECT idpvcli, numcli, nomcli, rfccli FROM pvclientes WHERE numcli='".$_POST['buscar']."' or nomcli regexp '".$_POST['buscar']."'",$link);

por otro lado, esa consulta es vulnerable a sql injection. Te recomiendo utilizar la función escape con los parámetros de texto y el typecast (int) para los numéricos.
  #5 (permalink)  
Antiguo 18/04/2012, 23:30
Avatar de YYs86  
Fecha de Ingreso: abril-2012
Ubicación: Salamanca
Mensajes: 136
Antigüedad: 12 años
Puntos: 14
Respuesta: Consulta que contenga la palabra

Como comenta @ylellan usa like para generar la consulta.
Te buscaría cualquier resultado de contenta la palabra indicada en $_POST['buscar']
También puedes concatenar varios "like" para realizar una consulta más extensa y sacar mas resultados de tu BBDD.

Yo personalmente uso codeigniter para realizar las consultas y son bastance fáciles:

Código PHP:
Ver original
  1. function buscarTopic($word){
  2.    
  3.         $query = $this->db->like('topics_title',$word);
  4.         $query = $this->db->or_like('topics_body',$word);
  5.         $query = $this->db->from('topics');
  6.         $query = $this->db->join('users','users.user_id = topics.user_id');
  7.         $query = $this->db->get();
  8.        
  9.         return $query->result_array();
  10.    
  11.     }
  #6 (permalink)  
Antiguo 19/04/2012, 04:27
 
Fecha de Ingreso: noviembre-2011
Ubicación: 127.0.0.1
Mensajes: 8
Antigüedad: 12 años, 5 meses
Puntos: 3
Respuesta: Consulta que contenga la palabra

Algunos enlaces con más info:

mysql like
http://dev.mysql.com/doc/refman/5.1/en/string-comparison-functions.html

ejemplos mysql like
http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html

mysql regexp
http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp


Saludos y suerte!

Última edición por j4vitux; 19/04/2012 a las 04:48
  #7 (permalink)  
Antiguo 19/04/2012, 08:23
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Consulta que contenga la palabra

Muchas gracias a los 3, revise los links de los ejemplos y al final logre hacerlo como tu comentaste J4vitux con regexp............


Saludos y gracias!!!!

Etiquetas: mysql, palabra, registro
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:23.