Foros del Web » Programando para Internet » PHP »

buscador interno con lista/menu

Estas en el tema de buscador interno con lista/menu en el foro de PHP en Foros del Web. Hola chicos buenas tardes. Les comento mi problema: Estoy creando un buscador interno en mi pagina web, funciona perfecto. pero con un solo lista/menu, cuando ...
  #1 (permalink)  
Antiguo 14/02/2014, 14:28
 
Fecha de Ingreso: agosto-2013
Ubicación: San Luis
Mensajes: 21
Antigüedad: 10 años, 8 meses
Puntos: 0
Información buscador interno con lista/menu

Hola chicos buenas tardes.

Les comento mi problema:

Estoy creando un buscador interno en mi pagina web, funciona perfecto. pero con un solo lista/menu, cuando utilizo 2 o mas no me funciona. aqui les paso el codigo.

codigo php.

Código PHP:
$colname_Sacarlistado "-1";
if (isset(
$_GET['buscar'])) {
  
$colname_Sacarlistado $_GET['buscar'];
}
mysql_select_db($database_demo$demo);
$query_Sacarlistado sprintf("SELECT * FROM posts WHERE opcion LIKE %s"GetSQLValueString("%" $colname_Sacarlistado "%""text"));
$Sacarlistado mysql_query($query_Sacarlistado$demo) or die(mysql_error());
$row_Sacarlistado mysql_fetch_assoc($Sacarlistado);
$totalRows_Sacarlistado mysql_num_rows($Sacarlistado);


$colname_Sacarlistado "-1";
if (isset(
$_GET['habi'])) {
  
$colname_Sacarlistado $_GET['habi'];

Basicamente selecciona todo de mi tabla post donde el campo " opcion 2 contiene lo que le paso por parametro.

El campo que le paso por get es un lista menu que se llama buscar.

Código HTML:
<form action="resultados.php" method="get" id="searchform">

<select name="buscar" id="buscar">
      <option>--Tipo de Operación:--</option>
      <option value="Alquiler">Alquiler</option>
      <option value="Venta-terreno">Terrenos</option>
      <option value="venta-casa">Ventas de Casas</option>
    </select>
<br>


<button type="submit" type="button">Buscar</button>
</form> 
Como puedo hacer para que pueda utilizar varios lista/menu y si selecciono 1 solo y presiono buscar, lo haga sin problema y si selecciono 2 o 3 los cargue como otros parametros para la busqueda. saludos. matias
  #2 (permalink)  
Antiguo 14/02/2014, 23:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: buscador interno con lista/menu

Ahhhmmm, creo que tu nombre de usuario debería quedar solo con las primeras 4 letras!

Fuera de broma, aquí va una sugerencia:

Código PHP:
Ver original
  1. // Creas un array para los filtros a usar
  2. $filtros = array();
  3.  
  4. // Creas la consulta, luego se agregarán los filtros
  5. $query_Sacarlistado = "SELECT * FROM posts";
  6.  
  7. // Verificas el primer campo
  8. if($_GET['primer_select'] != "") {
  9.        $filtros[] = "opcion LIKE " . GetSQLValueString("%" . $_GET['primer_select'] . "%", "text");
  10. }
  11.  
  12. // Haces lo mismo para los demás
  13. if($_GET['otro_3'] != "") {
  14.        $filtros[] = "otro_campo LIKE " . GetSQLValueString("%" . $_GET['otro_select'] . "%", "text");
  15. }
  16.  
  17. // Al final, verificas que se haya seleccionado al menos un criterio de búsqueda
  18. if(count($filtros) > 0) {
  19.        // Puedes cambiar OR por AND, dependiendo de como quieres que funcione
  20.        $query_Sacarlistado .= implode(" OR ", $filtros);
  21. }
  22.  
  23. // Ya está lista la consulta!
  24. echo $query_Sacarlistado; // Este echo es solo para ver si quedó bien
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/02/2014, 16:53
 
Fecha de Ingreso: agosto-2013
Ubicación: San Luis
Mensajes: 21
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: buscador interno con lista/menu

Cita:
Iniciado por Triby Ver Mensaje
Ahhhmmm, creo que tu nombre de usuario debería quedar solo con las primeras 4 letras!

Fuera de broma, aquí va una sugerencia:

Código PHP:
Ver original
  1. // Creas un array para los filtros a usar
  2. $filtros = array();
  3.  
  4. // Creas la consulta, luego se agregarán los filtros
  5. $query_Sacarlistado = "SELECT * FROM posts";
  6.  
  7. // Verificas el primer campo
  8. if($_GET['primer_select'] != "") {
  9.        $filtros[] = "opcion LIKE " . GetSQLValueString("%" . $_GET['primer_select'] . "%", "text");
  10. }
  11.  
  12. // Haces lo mismo para los demás
  13. if($_GET['otro_3'] != "") {
  14.        $filtros[] = "otro_campo LIKE " . GetSQLValueString("%" . $_GET['otro_select'] . "%", "text");
  15. }
  16.  
  17. // Al final, verificas que se haya seleccionado al menos un criterio de búsqueda
  18. if(count($filtros) > 0) {
  19.        // Puedes cambiar OR por AND, dependiendo de como quieres que funcione
  20.        $query_Sacarlistado .= implode(" OR ", $filtros);
  21. }
  22.  
  23. // Ya está lista la consulta!
  24. echo $query_Sacarlistado; // Este echo es solo para ver si quedó bien
Esta perfecto el codigo . pero me tira el siguiente error :


Cita:
Notice: Undefined index: buscar in C:\xampp10\htdocs\demoinmobili\resultadosprueba.ph p on line 21
  #4 (permalink)  
Antiguo 16/02/2014, 14:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: buscador interno con lista/menu

Ajá, sí, un error en... dónde?

Digo, sin ver tu código va a ser muy difícil saber que pasa.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 17/02/2014, 09:38
 
Fecha de Ingreso: agosto-2013
Ubicación: San Luis
Mensajes: 21
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: buscador interno con lista/menu

Aqui te paso el codigo, solucione el problema que tenia no habia utilizado el parametro isset para declarar los campos de lista menu. pero con los filtro no busca informacion

Código PHP:
<?php



mysql_select_db
($database_demo$demo);
$query_sacardatos12 sprintf("SELECT * FROM posts"); 
$sacardatos12 mysql_query($query_sacardatos12$demo) or die(mysql_error());
$row_sacardatos12 mysql_fetch_assoc($sacardatos12);
$totalRows_sacardatos12 mysql_num_rows($sacardatos12);


$filtros = array();
 

 
// Verificas el primer campo
if(isset($_GET["buscar"]) and isset($_GET["habi"])){ 

if(
$_GET['buscar'] != "") {
       
$filtros[] = "opcion LIKE " GetSQLValueString("%" $_GET['buscar'] . "%""text");
}
 
// Haces lo mismo para los demás
if($_GET['habi'] != "") {
       
$filtros[] = "habitacion LIKE " GetSQLValueString("%" $_GET['habi'] . "%""text");
}
 
// Al final, verificas que se haya seleccionado al menos un criterio de búsqueda
if(count($filtros) > 0) {
       
// Puedes cambiar OR por AND, dependiendo de como quieres que funcione
       
$query_sacardatos12 .= implode(" OR "$filtros);
}
 
// Ya está lista la consulta!

}
 
?>
  #6 (permalink)  
Antiguo 17/02/2014, 13:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: buscador interno con lista/menu

Es lo malo de no analizar el código, parece que se me olvidó decirte que debes agregar un " WHERE " antes del implode para que funcione la consulta!
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 17/02/2014, 20:27
 
Fecha de Ingreso: agosto-2013
Ubicación: San Luis
Mensajes: 21
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: buscador interno con lista/menu

soy nuevo con esto del php, me podrias explicar donde aplico el where pero en una sentencia funcional. gracias
  #8 (permalink)  
Antiguo 18/02/2014, 17:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: buscador interno con lista/menu

Supongo que también eres nuevo con consultas sql, porque realmente ahí es donde se usa el WHERE, para filtrar resultados:

SELECT * FROM tabla WHERE condicion o condiciones

Entonces, para solucionar tu problema se requiere completar la consulta así:

$query_sacardatos12 .= " WHERE " . implode(" OR ", $filtros);
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: Ninguno
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 18:50.