Foros del Web » Programando para Internet » PHP »

Buscador php

Estas en el tema de Buscador php en el foro de PHP en Foros del Web. Hola gente, como estan? Estos dias estuve programando un clon de la nueva version de tusecreto.com.ar! De a poco voy terminando, pero necesito como hacer ...
  #1 (permalink)  
Antiguo 15/03/2013, 21:26
Avatar de elvaleehdj  
Fecha de Ingreso: julio-2011
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Buscador php

Hola gente, como estan?

Estos dias estuve programando un clon de la nueva version de tusecreto.com.ar!

De a poco voy terminando, pero necesito como hacer para hacer el buscador..

Necesito que si un checkbox esta marcado eso tambien se incluya en la sentencia sql...

Por ejemplo, si tengo marcado el sexo Masculino que se busque, pero si no lo tengo que no lo busque!

Ayudaa!
Este es mi codigo:

Código:
<div class="input_fix"><form name="search" method="post" action="buscar.php"><input id="key_search" type="text" name="k" placeholder="Secretos con esta palabra" class="search" tabindex="4" value="" /></div>
			</div>
			<div class="submit_fields rounded_bottom clearfix">
				<label class="edad" for="edad_search">Edad </label>
				<input type="text" name="edad" class="edad" id="edad_search" maxlength="2" tabindex="5" />
				<div class="ordenadores">
					<input type="checkbox" name="h" id="hombre_search" class="hombre" value="1" />
					<label class="label_radio" for="hombre_search"><i class="sprite"></i>Hombre</label>
					<input type="checkbox" name="m" id="mujer_search" class="mujer" value="1" />
					<label class="label_radio" for="mujer_search"><i class="sprite"></i>Mujer</label>
				</div>
				<input type="submit" class="search_submit ir sprite" value="Buscar" tabindex="6" /></form>
			</div>			
		</div>
  #2 (permalink)  
Antiguo 15/03/2013, 22:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Buscador php

porque no muestras tu archivo buscar.php
__________________
cada vez que aprendes algo te crees que no sabes nada
  #3 (permalink)  
Antiguo 15/03/2013, 23:01
Avatar de elvaleehdj  
Fecha de Ingreso: julio-2011
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Buscador php

Cita:
Iniciado por arros Ver Mensaje
porque no muestras tu archivo buscar.php
Todabia no lo hice..
  #4 (permalink)  
Antiguo 15/03/2013, 23:30
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Buscador php

y donde tienes que buscar?
__________________
cada vez que aprendes algo te crees que no sabes nada
  #5 (permalink)  
Antiguo 15/03/2013, 23:33
Avatar de elvaleehdj  
Fecha de Ingreso: julio-2011
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Buscador php

Cita:
Iniciado por arros Ver Mensaje
y donde tienes que buscar?
En la base de datos...
  #6 (permalink)  
Antiguo 16/03/2013, 06:29
 
Fecha de Ingreso: marzo-2013
Ubicación: Buenos Aires
Mensajes: 12
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Buscador php

Hola elvaleehdj, como estas?
Te comento... yo el motor de búsqueda interno lo hago con MATCH y AGAINST. Luego la consulta la ordeno por las coincidencias que tuvo.

Te dejo un simple ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $sexo = $_POST['sexo'];
  4.  
  5. if($sexo != "")
  6. {
  7.         $result = mysql_query("SELECT nombre, apellido MATCH(campoEnElQueQuierasBuscar) AGAINST('$palabrasClaves') AS coincidencia FROM miTabla WHERE MATCH(campoEnElQueQuierasBuscar) AGAINST ('$palabrasClaves') and sexo = $sexo ORDER BY coincidencia DESC");
  8. }
  9. else
  10. {
  11.         $result = mysql_query("SELECT nombre, apellido MATCH(campoEnElQueQuierasBuscar) AGAINST('$palabrasClaves') AS coincidencia FROM miTabla WHERE MATCH(campoEnElQueQuierasBuscar) AGAINST ('$palabrasClaves') ORDER BY coincidencia DESC");
  12. }
  13.  
  14.  
  15.  
  16. ?>

Yo lo hago así y la verdad anda muy bien.

PD: Ten en cuenta que no es lo mismo buscar "colores lindos" que "color lindo". Por este motivo te recomiendo que antes de enviar los datos por POST crees una función ( te recomiendo en javascript para no atarear al servidor ) para pluralizar y des-pluralizar las palabras claves que el usuario quiere buscar.

Un saludo :)

Última edición por macrocode; 16/03/2013 a las 06:42
  #7 (permalink)  
Antiguo 16/03/2013, 07:48
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Buscador php

macrocode, no es eso lo que busca el amigo.. MATCH sirve muy bien, es cierto, pero consume demasiados recursos innecesarios si lo que buscas es algo específico, necesitas que los campos deonde vas a buscar sean FULLTEXT y otras condiciones... lo mejor si son resultados específicos es usar LIKE, que seguro lo está usando...

Con respecto al tema del amigo, haría algo simple como crear una variable y modificar su contenido.. no se exactamente el código que usas, pero sería algo como

Código PHP:

<?php

$in
="AND";

$precios$_POST['precios'];

if(isset(
$_POST['genero'])){
  
$genero$_POST['genero']; //aqui se toma la variable de sexo
}

//aqui le creo un filtro sencillo para ver si vino con contenido o no

//Consultas de sexo
        
if(!empty($genero)){
        
            
$consulta.=" $in idGenero LIKE '$genero'";
        
        }
//fin consulta ubicacion

if($consulta!=""){
            
$consulta=$consulta;
        }

$sql "SELECT * FROM productos
WHERE precios LIKE '$precios' $consulta 
ORDER BY idProd"
;



?>
Es solo para que te sirva de orientación... no es la solución real a tu problema
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #8 (permalink)  
Antiguo 16/03/2013, 09:46
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 566
Antigüedad: 18 años, 5 meses
Puntos: 24
Respuesta: Buscador php

Cita:
Iniciado por loncho_rojas Ver Mensaje
macrocode, no es eso lo que busca el amigo.. MATCH sirve muy bien, es cierto, pero consume demasiados recursos innecesarios si lo que buscas es algo específico, necesitas que los campos deonde vas a buscar sean FULLTEXT y otras condiciones... lo mejor si son resultados específicos es usar LIKE, que seguro lo está usando...

Con respecto al tema del amigo, haría algo simple como crear una variable y modificar su contenido.. no se exactamente el código que usas, pero sería algo como

Código PHP:

<?php

$in
="AND";

$precios$_POST['precios'];

if(isset(
$_POST['genero'])){
  
$genero$_POST['genero']; //aqui se toma la variable de sexo
}

//aqui le creo un filtro sencillo para ver si vino con contenido o no

//Consultas de sexo
        
if(!empty($genero)){
        
            
$consulta.=" $in idGenero LIKE '$genero'";
        
        }
//fin consulta ubicacion

if($consulta!=""){
            
$consulta=$consulta;
        }

$sql "SELECT * FROM productos
WHERE precios LIKE '$precios' $consulta 
ORDER BY idProd"
;



?>
Es solo para que te sirva de orientación... no es la solución real a tu problema
Mucho cuidado con usar variables globales post directamente en las consultas SQL, ahi tienes un agujero grande de seguridad.
__________________
www.marcher.com.uy - Web personal
Nerd's Corner - Desarrollo de software a medida
  #9 (permalink)  
Antiguo 16/03/2013, 10:27
 
Fecha de Ingreso: marzo-2013
Ubicación: Buenos Aires
Mensajes: 12
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Buscador php

Cita:
Iniciado por vb2005 Ver Mensaje
Mucho cuidado con usar variables globales post directamente en las consultas SQL, ahi tienes un agujero grande de seguridad.
No viene mucho al caso pero... ¿Como solucionarías eso para agregarle seguridad vb2005?

Un saludo colega!
  #10 (permalink)  
Antiguo 16/03/2013, 10:40
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Buscador php

Cita:
Iniciado por macrocode Ver Mensaje
No viene mucho al caso pero... ¿Como solucionarías eso para agregarle seguridad vb2005?

Un saludo colega!
Teniendo en cuenta que las funciones mysql_* estan obsoletas lo mejor opción son las consultas parametrizadas tanto en mysqli y PDO

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.

Etiquetas: buscador, sql
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 12:41.