Foros del Web » Programando para Internet » PHP »

Mostrar Registros

Estas en el tema de Mostrar Registros en el foro de PHP en Foros del Web. Hola a todos.!!! Tengo la siguiente consulta. En mi pagina PHP muestro el contenido de una Tabla cualquiera de Mysql usando tablas html (algo muy ...
  #1 (permalink)  
Antiguo 20/04/2006, 10:40
Avatar de edsonmc  
Fecha de Ingreso: marzo-2006
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Mostrar Registros

Hola a todos.!!!

Tengo la siguiente consulta. En mi pagina PHP muestro el contenido de una Tabla cualquiera de Mysql usando tablas html (algo muy parecido a un Dbgrid). Tengo un buscador en el que selecciono el campo donde buscar, luego escribo lo que quiero buscar. Por ejemplo elijo el campo Apellidos y busco "perez".

Con un select ... like puedo solucionar el asunto pero requiero que la busqueda me posicione en el primer "perez" que encuentre y si busca otra vez que me posicione en el siguiente "perez" y asi sucesivamente.
He probado con "select .... where locate" pero el resultado es similar a "select ...like". Puedo usar el "select .. limit" pero no se desde donde empezar a buscar .... ya que no se que se buscara.

EL objetivo es posicionar y no hacer un filtro... algo parecido al "Buscar en esta pagina" que tiene el IE o el Firefox. existe alguna forma de hacer esto con PHP .?

Espero sus sugerencias.
Gracias de antemano.
  #2 (permalink)  
Antiguo 20/04/2006, 12:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Se me ocurre .. una consulta SQL típica:

SELECT id FROM tabla WHERE nombre='$nombre' LIMIT 1 ORDER BY id ASC

Limitando a un resultado .. ordenado por el campo "id" (autonumérico y único que debes tener) y en forma ascendente.

Luego ir obtener el id de ese registro obtenido: la primera ocurrencia .. y de ahí hacer otra consulta tipo:

SELECT id FROM tabla WHERE id >= $id ORDER BY id ASC

Desde el $id obtenido anteriormente, ordenado por ID en forma ascendente y que cumplan que ese ID sea mayor o igual al que obtuvimos.

Supongo que esto que hago en un par de consultas SQL .. se podría optimizar en una sóla (tal vez con sub-consultas si la versión de tu BBDD lo soporta).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 20/04/2006, 19:00
Avatar de edsonmc  
Fecha de Ingreso: marzo-2006
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 0
De acuerdo Sugerencia

Que tal cluster...

Eso que me dices tambien lo tenia pensado. ISn embargo pasa que la tabla que muestro es totalmente aleatoria... no se si tiene o no id o un campo autonumerico... pero de todas maneras estoy adecuando tu sugerencia con lo que tenia pensado.

Gracias por responder.!!!

Saludos
  #4 (permalink)  
Antiguo 20/04/2006, 20:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por edsonmc
Que tal cluster...

Eso que me dices tambien lo tenia pensado. ISn embargo pasa que la tabla que muestro es totalmente aleatoria... no se si tiene o no id o un campo autonumerico... pero de todas maneras estoy adecuando tu sugerencia con lo que tenia pensado.

Gracias por responder.!!!

Saludos
Ok, .. por si acaso también tienes la función myslq_data_seek() pero esa función te permite desplazarte por un resultado obtenido.

Tal vez deberías consultar también en el foro de "Base de datos" para ver si hay alguna sentencia SQL que pudieras usar más directa para tal fin o como dirigirte a un registro concreto u obtener un "puntero" o algo así (realmente desconozco el tema así: siempre uso "ID's" (campos autonuméricos) justamente para evitarme ese tipo de dolores de cabeza si se plantea un problema como el que describes).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 09:34.