Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta a base de datos

Estas en el tema de Consulta a base de datos en el foro de Bases de Datos General en Foros del Web. Quisiera haceros una consulta sobre mysql. Realizo una llamada a la base de datos realizando una busqueda, pero tengo un problema, al realizar la busqueda ...
  #1 (permalink)  
Antiguo 13/04/2003, 12:16
MMU
Invitado
 
Mensajes: n/a
Puntos:
Consulta a base de datos

Quisiera haceros una consulta sobre mysql. Realizo una llamada a la base de datos realizando una busqueda, pero tengo un problema, al realizar la busqueda se permite que la variable de busqueda tenga varias palabras, y realiza la busqueda en funcion de cualquiera de las dos palabras, descontextualizando la busqueda. Me explico, si decido buscar "diseño web" me busca todos los documentos que tienen el termino web, aunque no tengan nada que ver con diseño, mi pregunta es si no se puede hacer que busque las dos palabras a la vez solamente o quizas otra forma es que ignore ciertas palabras en la busqueda como po ejemplo la palabra "web".

Quisiera saber si existe alguna forma de hacer las dos cosas.

Un saludo y gracias
  #2 (permalink)  
Antiguo 17/04/2003, 00:45
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Ya hiciste pruebas con el operador like ..???

ejemplo:

select * from tabla where texto_a_buscar like '%Diseño Web%'

Suerte..
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 17/04/2003, 01:43
MMU
Invitado
 
Mensajes: n/a
Puntos:
Si ya he probado y he conseguido lo que queria, el problema ahora se me plantea a la hora de limitar el numero de caracteres por busqueda, quiero que la palabra minima de busqueda tenga 3 caracteres.

El script basico que uso es este:

$ph=explode(" ",$uq);
for ($i=0;$i<count($ph);$i++) {
$pq="%".$ph[$i]."%";
$likes.=" OR UPPER(description) like '$pq'";
$likes.=" OR UPPER(title) like '$pq'";
$likes.=" OR UPPER(url) like '$pq'";
}
$likes=substr($likes,4);

$rr=mysql_query("SELECT count(*) FROM main WHERE type=1 AND ($likes)") or die(mysql_error());
$total=mysql_result($rr,0,0);
$r=mysql_query("SELECT * FROM main WHERE type=1 AND ($likes) $order LIMIT $start,10") or die(mysql_error());

$c=mysql_num_rows($r);

Quiero conseguir que cuando se busque "s" no me salgan todas las webs que contienen el caracter "s".

Gracias y a ver si podeis ayudarme
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 12:12.