Foros del Web » Programando para Internet » PHP »

Busqueda avanzada

Estas en el tema de Busqueda avanzada en el foro de PHP en Foros del Web. Hola a todos!! Lo que quiero hacer es una busqueda en una base de datos, pero algo especial, quiero que a la hora de buscar ...
  #1 (permalink)  
Antiguo 07/07/2004, 02:55
 
Fecha de Ingreso: mayo-2004
Ubicación: arriba, abajo y derecha
Mensajes: 101
Antigüedad: 13 años, 7 meses
Puntos: 0
Busqueda avanzada

Hola a todos!!

Lo que quiero hacer es una busqueda en una base de datos, pero algo especial, quiero que a la hora de buscar me aparezcan todos los laton en una lista,(un campo de texto de barias lineas), cada registro en una linea, hasta ahi bien, pero si pulso la tecla c, se diriga a los usuarios que empiecen la c, si lugo pulso la e, se diriga a los usuario que empiecen por ce, asi sucesivamente asta encontrar el deseado, teneis idea alguno de ello??

Gracias por todo
  #2 (permalink)  
Antiguo 07/07/2004, 09:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El tema de:
"pero si pulso la tecla c"

Como "tecla física al ser pulsada" debes solventarlo desde Javascirpt. Es decir . .desde javacript ante tal evento (sería onKey() o similar? ..) vas a tener que ir (si es que mostrarstes esos datos ordenados alfabéticamente) a algún "ancla" (de HMTL) .. o no sé si quieres recargar la página para mostrar sólo los de tal letra que comienzan.

Si optas por la opción del "ancla" .. tendrás que generar dinámicamente donde hay que poner el ancla según el dato (de tu BD que obtienes con tu bucle) es el primer dato de ese grupo de registros que empieza por tal letra.

Código PHP:
<?
// etc ..
$anterior='';
while (
$row=mysql_fetch_array($consulta)){
   
// si la inicial de la cadena del campo "nombre" es diferente al anterior que se almacenó ... se entiende que se cambió de categoría ..
   
if ($row['nombre']{0} != $anterior){
      
// definición "ancla" dinámica ..
      
echo "<a name=\"".$row['nombre']{0}."\"></a>\n";
      
// de paso mostramos la categoría (la Inicial)
      
echo "<b>".$row['nombre']{0}."<b><br>"
      
// y el primer nombre.
      
echo $row['nombre']."<br>";
   } else { 
      
// se muestra el nombre sólo.
      
echo $row['nombre']."<br>";
   }

   
$anterior=$row['nombre']{0};
}
?>
El tema de la "tecla" o link que puedas hacer lo debes resolver como antes mencioné desde Javascript. Apuntando ese "evento" de javascript al "ancla" de nombre Inicial que PHP generó dinámicamente.

Un saludo,
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 04:16.