Ver Mensaje Individual
  #9 (permalink)  
Antiguo 08/07/2013, 14:29
franjgg
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Busqueda por cada una de las palabras que se introuducen

Gracias, por el link amigo, me lo apunto y modifico,

Ahora mismo estoy a ver si me sale, tal como tengo el codigo me detecta las palabras pero no se por que me esta repitiendo infinitas veces cuando encuentra "de"

A ver si pueden ver algo:

Código PHP:
Ver original
  1. $palabras = 'ropa de niño infantil';
  2.  
  3.  
  4.     $cad = $palabras;
  5.     $cad=explode(' ',$cad);
  6.  
  7.  
  8. $i=0;
  9. while ($i < count ($cad) ) {
  10.  
  11. //echo substr($cad[$i], -1);
  12. //print '<br />';
  13. //print utf8_decode($cad[$i]);
  14. //print '<br />';
  15.  
  16. $req = "Select descripcion FROM nopalabras";
  17.  
  18.  
  19.  
  20. //$req = "select ela.descripcion, elp.descripcion, ed.nombre FROM empresas_listas_articulos2 ela, empresas_listas_platos2 elp, empresas_direcciones ed WHERE ela.descripcion like '".$_REQUEST['term']."%' or  elp.descripcion like '".$_REQUEST['term']."%' or ed.nombre like '".$_REQUEST['term']."%'";
  21.  
  22. //$req = "select e.id, e.descuento, md.logo, m.imagen, md.nombre as nombre_general, md.web, md.email_cliente as email_misdatos, ed.id as id_direccion, ed.nombre as nombre_direccion, ed.direccion, ed.telefono, ed.id_municipios, ed.id_provincias, ed.cp, ed.email as email_direccion from empresas e left join micrositio m on e.id = m.id_empresas left join misdatos md on e.id_mis_datos = md.id left join empresas_direcciones ed on (ed.id_empresas = e.id and ed.id_provincias =14) where e.id in ((select distinct(e1.id) from empresas e1, empresas_listas_articulos ela, empresas_direcciones ed, empresas_listas el, listas l where ela.id_empresas = e1.id and ed.id_empresas = e1.id and el.id = ela.id_empresas_listas and md.id_categorias <> 14 and el.id_listas = l.id and l.activo = 1 and el.activo = 1  and ed.id_provincias =14 and (ela.descripcion like '".$_REQUEST['term']."%' or ela.descripcion like '".$_REQUEST['term']."%')union select distinct(eln.id_empresas) from empresas_listas_nombres eln, misdatos md where eln.id_empresas = e.id and e.id_mis_datos = md.id and md.id_categorias <> 14  and ((eln.descripcion like '%".$_REQUEST['term']."%' or eln.descripcion  like '%".$_REQUEST['term']."%')  or (eln.descripcion like '%".$_REQUEST['term']."%' or eln.descripcion like '%".$_REQUEST['term']."%')) and eln.id_provincias =14 and eln.activo=1 ))";
  23.  
  24. //$req = "Select E.ID, E.DESCUENTO, MD.LOGO, M.IMAGEN, MD.NOMBRE AS NOMBRE_GENERAL, MD.WEB, MD.EMAIL_CLIENTE AS EMAIL_MISDATOS, ED.ID AS ID_DIRECCION, ED.NOMBRE AS NOMBRE_DIRECCION, ED.DIRECCION, ED.TELEFONO, ED.ID_MUNICIPIOS, ED.ID_PROVINCIAS, ED.CP, ED.EMAIL AS EMAIL_DIRECCION FROM EMPRESAS E LEFT JOIN MICROSITIO M ON E.ID = M.ID_EMPRESAS LEFT JOIN MISDATOS MD ON E.ID_MIS_DATOS = MD.ID LEFT JOIN EMPRESAS_DIRECCIONES ED ON (ED.ID_EMPRESAS = E.ID AND ED.ID_PROVINCIAS =14) WHERE E.ID IN ((SELECT DISTINCT(E1.ID) FROM EMPRESAS E1, EMPRESAS_LISTAS_ARTICULOS ELA, EMPRESAS_DIRECCIONES ED, EMPRESAS_LISTAS EL, LISTAS L WHERE ELA.ID_EMPRESAS = E1.ID AND ED.ID_EMPRESAS = E1.ID AND EL.ID = ELA.ID_EMPRESAS_LISTAS AND MD.ID_CATEGORIAS <> 14 AND EL.ID_LISTAS = L.ID AND L.ACTIVO = 1 AND EL.ACTIVO = 1  AND ED.ID_PROVINCIAS =14 AND (ELA.DESCRIPCION LIKE '".$_REQUEST['term']."%' OR ELA.DESCRIPCION LIKE '".$_REQUEST['term']."%')UNION SELECT DISTINCT(ELN.ID_EMPRESAS) FROM EMPRESAS_LISTAS_NOMBRES ELN, MISDATOS MD WHERE ELN.ID_EMPRESAS = E.ID AND E.ID_MIS_DATOS = MD.ID AND MD.ID_CATEGORIAS <> 14  AND ((ELN.DESCRIPCION like '%".$_REQUEST['term']."%' OR ELN.DESCRIPCION  like '%".$_REQUEST['term']."%')  OR (ELN.DESCRIPCION like '%".$_REQUEST['term']."%' OR ELN.DESCRIPCION LIKE '%".$_REQUEST['term']."%')) AND ELN.ID_PROVINCIAS =14 AND ELN.ACTIVO=1 )) ORDER BY NEWID()";
  25.  
  26. //$req = "Select id, descripcion FROM empresas_listas_articulos2 WHERE descripcion LIKE '".$_REQUEST['term']."%'";
  27.  
  28. $query = mysql_query($req);
  29.  
  30. $control = '0';
  31.  
  32. while($row = mysql_fetch_array($query)){
  33.  
  34.  
  35.  
  36.     if(strtolower($row['descripcion']) == $cad[$i]){
  37.  
  38.         $control = '1';
  39.         echo $cad[$i];
  40.  
  41.     }
  42. }
  43.  
  44.  
  45. if($control != '1'){
  46.  
  47.     if(substr($cad[$i], -1) == 'a' OR substr($cad[$i], -1) == 'e' OR substr($cad[$i], -1) == 'o'){
  48.  
  49.     $cad[$i]= $cad[$i].'s'; $control = '1';
  50.  
  51.     }elseif(substr($cad[$i], -1) == 'i' OR substr($cad[$i], -1) == 'u'){
  52.  
  53.     $cad[$i]= $cad[$i].'es';$control = '1';
  54.    
  55.     }elseif(substr($cad[$i], -1) == 'z'){
  56.  
  57.     $cad[$i] = $cad[$i] = substr($cad[$i], 0, -1).'ces';$control = '1';
  58.  
  59.     }elseif(substr($cad[$i], -1) == 'y'){
  60.  
  61.         if(substr($cad[$i], -1) == 'jersey'){
  62.  
  63.             $cad[$i] = 'jerseis';$control = '1';
  64.  
  65.         }else{
  66.  
  67.             $cad[$i] = $cad[$i].'es';$control = '1';
  68.         }
  69.  
  70.     }elseif(substr($cad[$i], -1) == 's' OR substr($cad[$i], -1) == 'x'){
  71.  
  72.  
  73.         $cad[$i] = $cad[$i];$control = '1';
  74.  
  75.     }else{
  76.  
  77.         $cad[$i] = $cad[$i].'es';$control = '1';
  78.     }
  79.     print utf8_decode($cad[$i]);
  80.     print '<br />';
  81.     $i++;
  82. $control = '1';
  83.  
  84. }
  85. }

Un saludo amigo!!