Foros del Web » Programando para Internet » PHP »

Problema con Consulta

Estas en el tema de Problema con Consulta en el foro de PHP en Foros del Web. Hola Maestros: Tengo un problema a la hora de generar una consulta ya que la genero de la siguiente forma: Código PHP: $arr_busca = split ...
  #1 (permalink)  
Antiguo 06/11/2003, 13:06
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
Problema con Consulta

Hola Maestros:


Tengo un problema a la hora de generar una consulta ya que la genero de la siguiente forma:


Código PHP:
$arr_busca=split("[[:space:]]+",$find);
$cont=count($arr_busca);

$sql="SELECT
Titulo,Titulo_ant,Url_ant,Titulo_post,Url_post,Proveedor,Url_rev,Fecha,Url_prov,Gratis,Fecha_gratis
FROM journals INNER JOIN proveedores ON
journals.id=proveedores.id WHERE "
;
      
for(
$i=0;$i<$cont;$i++)
 {
  
$sql.= "(Titulo LIKE \"$arr_busca[$i] %\" OR Titulo
LIKE \"%" 
.$arr_busca[$i]."_s %\" OR Titulo LIKE \"%
$arr_busca[$i] %\" OR Titulo LIKE \"% $arr_busca[$i]\"
OR Titulo=\"$arr_busca[$i]\")"
;
            
if((
$i+1)<$cont){
  
$sql.= " AND ";
 }
     
}
//end for

$sql.= " AND IFC!=\"0\" ORDER BY Titulo"
como ven a toda la cadena le hago un Split
y bueno tengo que saber buscar tambien esto:

$find toma el valor de "Autonomous Agents and Multi Agent-Systems"

Como veras de ahi no tomo en cuenta el "and" y el "-",
para que en el arreglo solo queden puras palabras y asi poder hacer la consulta.

Pero tambien el usuario puede poner esto:

"Autonomous Agents and Multi Agent Systems", sin el "-" y pues no se como hacerle .

es decir que mi duda es como le hago para que al hacer mi consulta me tome en cuenta el " - "

espero me puedan ayudar.
  #2 (permalink)  
Antiguo 06/11/2003, 13:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. si tenemos en cuenta que una palabra es sólo identificada por un espacio .. En lugar de usar expresiones regulares (que dicho sea de paso consumen más recursos del serivodor y .. que si no usas bien su sintax te puede dar problema con ciertos caracteres) .. Usaría:

Código PHP:
$arr_busca=explode(" ",$find); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 06/11/2003, 14:19
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
y lo del ciclo lo sigo utilizando o como lo aplico a mi codigo ?


gracias por todo Cluster
  #4 (permalink)  
Antiguo 06/11/2003, 14:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si, .. explode() entrega un array igual que split() .. salvo que split() lo hace bajo un patrón y explode() simplemente bajo una cadena de caracteres (o un sólo caracter)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:25.