Foros del Web » Programando para Internet » PHP »

Buscador de STRINGS en una BD

Estas en el tema de Buscador de STRINGS en una BD en el foro de PHP en Foros del Web. Hola a todos! Necesito armar un buscador interno...... La funcion del mismo seria buscar dentro de la BD en el campo DESCRIPCION todos los productos ...
  #1 (permalink)  
Antiguo 29/07/2003, 17:17
Avatar de pabloazorin  
Fecha de Ingreso: junio-2003
Ubicación: Pilar, Buenos Aires.
Mensajes: 41
Antigüedad: 21 años, 4 meses
Puntos: 1
Pregunta Buscador de STRINGS en una BD

Hola a todos!
Necesito armar un buscador interno......
La funcion del mismo seria buscar dentro de la BD en el campo DESCRIPCION todos los productos los cuales la descripcion del mismo corrersponde a una variable cargada desde un form.
Se entiende lo que necesito?
Ejemplo: el usuario escribe AZUCAR y apreta en Search.....
Luego le muestro los resultados de todos los productos que dentro de su descripcion contengan la palabra AZUCAR.
Creo que no es muy complicado lo que necesito....
Si alguien me puede ayudar....estare muy agredecido.
Atte
PABLO AZORIN
__________________
Pablo S. Azorin
[email protected]
  #2 (permalink)  
Antiguo 29/07/2003, 17:39
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
Bueno, solo debes hacer un query como este:

Código PHP:
$palabra=$_POST["palabra"];

$tal=mysql_query("select * from productos where descripcion like'%$palabra%'");
while (
$lista=mysql_fetch_array($tal)){
// AQUI DESPLIEGAS TU RESULTADO

__________________
Manoloweb
  #3 (permalink)  
Antiguo 29/07/2003, 18:01
Avatar de pabloazorin  
Fecha de Ingreso: junio-2003
Ubicación: Pilar, Buenos Aires.
Mensajes: 41
Antigüedad: 21 años, 4 meses
Puntos: 1
Dentro de "descripcion" tengo mucho texto.....
Esto que me pasaste busca dentro de una cadena de texto?
__________________
Pablo S. Azorin
[email protected]
  #4 (permalink)  
Antiguo 29/07/2003, 18:15
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
Asi es, por ejemplo...

texto: esta es una prueba de texto para pablo

cadena buscada: prueba

El operador LIKE te busca dentro de la cadena, por mas larga que sea.
__________________
Manoloweb
  #5 (permalink)  
Antiguo 30/07/2003, 22:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pero ... dentro de la cadena que usas para "buscar" se tomará como "frase" .. osease:

LIKE '%pepito de los palotes%'

será como "encontrado":

pepito de los palotes bla bla bla
bla bla pepito de los palotes
blapepito de los palotesbla

(lo comento por si esperas que te busque por "esas palabras de esa cadena de busqueda en tu texto a buscar de tu campo de tu tabla de tu BD) ..

Eso sería otro tema .. Ahí sería cosa de meter "impole()" y formar sentencias SQL condicionales típo: AND LIKE ... AND LIKE ....

Y si llegase el caso .. usar "FULL TEXT" de Mysql (típos de campos y funciones de Mysql afines) para hacer esas busquedas sería lo ideal ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 06/02/2007, 12:38
 
Fecha de Ingreso: agosto-2006
Mensajes: 78
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Buscador de STRINGS en una BD

Cita:
Iniciado por Manoloweb Ver Mensaje
Bueno, solo debes hacer un query como este:

Código PHP:
$palabra=$_POST["palabra"];

$tal=mysql_query("select * from productos where descripcion like'%$palabra%'");
while (
$lista=mysql_fetch_array($tal)){
// AQUI DESPLIEGAS TU RESULTADO

Hola tengo un problema muy parecido, pero con las siguientes caracteristicas ;

Primero el usuario selecciona un codigo postal mediante este form

<FORM METHOD="get" ACTION="codigopostal.php">
<input name="postal" type="text" id="postal">
<input name="control" type="hidden" value="2">
<input type="submit" name="Submit" value="Buscar empresa">
</FORM>

luego al pulsa submit ejecuta este trozo de codigo

if ($_GET['control']=="2"){
$_SESSION['comprobar'] = $id_tabla;
$palabra = $HTTP_GET_VARS["postal"];
$_pagi_sql = mysql_query("SELECT * FROM menta_empresa.".$id_tabla." where ".$id_tabla.".cp2 like '%".$palabra."%'");
}

En donde con el IF control que viene del formulario, luego recogo la tabla que se esta usando de la base de datos mediante la $_SESSION y por ultimo recogo el codigo postal que ha tecleado mediante $palabra, tengo que decir
que los codigos postales no los tengo como INT sino como VARCHAR, en un primer momento pense que no fuera ese el problema pero no creo, ya que lo trata como string.

Si intento efectuar la busqueda me indica
Error en la consulta de conteo de registros: Resource id #5. Mysql dijo: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5' at line 1

Gracias por vuestra ayuda!
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 22:05.