Foros del Web » Programando para Internet » PHP »

Pagina Maestro - Detalle

Estas en el tema de Pagina Maestro - Detalle en el foro de PHP en Foros del Web. Hola Comunidad! La aplicación PHP q estoy desarrollando, tengo que mostrar la información de una tabla que tiene muchos campos, como no me caben en ...
  #1 (permalink)  
Antiguo 08/01/2003, 06:17
Avatar de dabogar  
Fecha de Ingreso: diciembre-2002
Ubicación: Valenciaaaa es la tierra de las flores ...
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
Pagina Maestro - Detalle

Hola Comunidad!

La aplicación PHP q estoy desarrollando, tengo que mostrar la información de una tabla que tiene muchos campos, como no me caben en la pantalla necesito que al clickear en los productos me abra una ventana con el cursor de la consulta situada en el que se haya hecho click, y con una flecha de -> y <- poder navegar por ellos.

Lo que no tengo claro es como situo el cursor en el registro adecuado y como lo muevo de uno a otro.

Se puede hacer, o soy una ilusa

Thanxs
  #2 (permalink)  
Antiguo 08/01/2003, 06:36
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
A ver si lo he entendido.

Tienes una tabla con X registros de Y campos cada uno.
Resulta que cada registro tiene un número muy elevado de campos y quieres dividirlo en dos o más pantallas.

En ese caso, lo mejor sería usar mysql_fetch_row() y recuperar los datos usando $row[0], $row[1], ...

Un modo de hacerlo sería:

Código PHP:
<?
$connexion 
=  mysql_connect("host","login","password");
$bdd mysql_select_db("base",$connexion);

$consulta mysql_query("SELECT * FROM tabla WHERE condiciones");

if(!isset(
$pagina)){$pagina=1;} # si no hemos definido la pagina, es que es la primera
$campos 10# número de campos a mostrar
$inicio = ($pagina*$campos)-$campos# campo inicial (empieza por 0)
$final $inicio+$campos # campo final

while ($row=mysql_fetch_row($consulta)) {
    echo 
"<tr>";
    for (
$i=$inicio;  $i<=$final$i++) {
        echo 
"<td>$row[$i]</td>";
    }
    echo 
"</tr>";
}
?>
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 08/01/2003, 06:54
Avatar de dabogar  
Fecha de Ingreso: diciembre-2002
Ubicación: Valenciaaaa es la tierra de las flores ...
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
A ver, que como siempre me pasa me explico muy mal y no me entiende ni Dios

Tengo X registros con 20 campos de los que con la primera consulta muestro 3 campos, lo que quiero es al hacer clic en un registro me abra un pop-up, donde vuelvo a ejecutar la consulta, solo que me muestra toda la información de ese registro, los 20 campos.

Eso sé como hacerlo, simplemente con pasarle el ID al popup me lo mostraría, pero el caso es que quiero que a la vez dicho popup tenga una menú de navegación con NEXT y PREV, así puede ira al siguiente registro o al anterior.

Esa parte es la que no sé como se hace, si existe alguna función que deje avanzar o retroceder después de estar mostrando la información del registro X.

Saudets
  #4 (permalink)  
Antiguo 08/01/2003, 06:58
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Deberías pasar, además del id actual, los ids anterior y siguiente. Será mucho más ágil que repetir la consulta
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 08/01/2003, 07:15
Avatar de dabogar  
Fecha de Ingreso: diciembre-2002
Ubicación: Valenciaaaa es la tierra de las flores ...
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
Se supone que si pongo anterior y siguiente es para poder "navegar" por todos los registros desde el pop-up, no sólo por el que pinchas el anterior y en el siguiente, ¿que no se puede hacer en PHP?

Es que exacatamente lo mismo yo lo he hecho en ASP, no me acuerdo del código ni como lo hice por que hace mucho tiempo, pero sé que lo hice.

Jo que desesperación, me veo con una tabla de 20 campos y a mis pobres usuarios dandole a la barra de desplazamiento lateral del navegador
  #6 (permalink)  
Antiguo 08/01/2003, 07:17
 
Fecha de Ingreso: julio-2002
Ubicación: Elche
Mensajes: 153
Antigüedad: 21 años, 9 meses
Puntos: 0
Si lo que quieres es realizar la navegación en el mismo popup, yo lo hice a una manera un poco bestia, a ver si la explico bien:

1. Guardo en un array todos los id, por orden, de los registros
2. Mediante sesiones registro ese array para poder acceder a él en cualquier momento.
3. Así, cada vez que pinchas en siguiente o anterior tienes los id en el array para ponerlos.

Si esto no lo has entendido, cosa que me creo porque no me se explicar muy bien, o no te resulta muy rentable hacerlo, tendrás que pasar todas las veces el id anterior y siguiente, es decir, cuando pongas los enlaces anterior y siguiente en el popup, tendrás que pasar los id del registro anterior y siguiente.


Un saludo, y si no lo entiendes lo vuelvo a explicar.
__________________
Hazlo o no lo hagas, pero nunca lo intentes

www.clubfronteniselche.com
  #7 (permalink)  
Antiguo 08/01/2003, 07:26
Avatar de dabogar  
Fecha de Ingreso: diciembre-2002
Ubicación: Valenciaaaa es la tierra de las flores ...
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
Gracias paisano, pero con una tabla con 3.700 registros y creciendo cuando el ID es el NIF, no quiero ni pensar lo que debe ocupar en memoria, y encima si contamos que tenemos 100 usuarios consultando a la vez los datos, no me sirve de solución.

Me estoy empollando las funciones del PHP desde PHP.net, si lo consigo con funcionamiento correcto lo pondré en el FAQ y todo
  #8 (permalink)  
Antiguo 08/01/2003, 07:34
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
dabogar, no te enrolles tanto, en realidad no es tan dificil, es un simple paginado... solo que en vez de mostrar páginas con 10 resultados, muestras páginas con 1 resultado.

Tan solo tienes que asegurarte que utilizas un ORDEN en la consulta, para poder hacer un LIMIT :

SELECT * FROM tu_tabla ORDER BY nif LIMIT $x,1

Te traería el elemento en la posición X solamente. luego con los botones de PREV y SIG le agregas 1 o le restas 1 a esa variable, y vuelves a llamar al script.

Si necesitás ayuda para Paginar, podés darle una mirada a la clase que hice para tal propósito :

http://www.forosdelweb.com/showthrea...threadid=65528

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #9 (permalink)  
Antiguo 08/01/2003, 07:44
Avatar de dabogar  
Fecha de Ingreso: diciembre-2002
Ubicación: Valenciaaaa es la tierra de las flores ...
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
Joer, que habilidad la mia, yo pensando en el PHP sin acordarme del SQL.

Mushas Gracias
  #10 (permalink)  
Antiguo 08/01/2003, 10:55
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
pues si tu id es un campo auto incremnetable la tarea es muy facil, solo haces el prev con el link a id - 1, vas pasando la id por la url claro, u el next a la id + 1 mistras no llegue al final que lo debrias obtener con mysql_num_rows para saber cuantos hay.

Saludos
  #11 (permalink)  
Antiguo 08/01/2003, 11:54
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Cita:
Mensaje Original por chalito
pues si tu id es un campo auto incremnetable la tarea es muy facil, solo haces el prev con el link a id - 1, vas pasando la id por la url claro, u el next a la id + 1 mistras no llegue al final que lo debrias obtener con mysql_num_rows para saber cuantos hay.

Saludos
Chalito, no es de malo, pero tu solución falla cuando no todos los ID's son seguidos, o sea, cuando por ejemplo, tuviste que borrar un registro de la tabla...

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #12 (permalink)  
Antiguo 08/01/2003, 12:09
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
Sip, tienes razon, pero creo que seria facilemnte controlable preguntando si hay o no registro con la id restada, sino, se resta otra, es facil tambien.

Saludos
  #13 (permalink)  
Antiguo 08/01/2003, 12:14
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
No, no puedes usar un +1 porque si el ID es un NIF no estamos hablando de campos autoincrementales.

Es decir, puedes tener una lista así:

123456789S
547896213D
145789623G
257848569N

Como ves, la diferencia entre IDs no es una unidad.
__________________
M a l d i t o F r i k i
  #14 (permalink)  
Antiguo 08/01/2003, 12:17
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 21 años, 4 meses
Puntos: 0
si lees bien mi respeusta, dije que era posible hacerlo simepre y cuando sea un campo auti incrementable, y para eso obiamente debe estar definido con algun dato numerico como int. lee nuevamente la respuesta.

Saludos
  #15 (permalink)  
Antiguo 09/01/2003, 03:26
Avatar de dabogar  
Fecha de Ingreso: diciembre-2002
Ubicación: Valenciaaaa es la tierra de las flores ...
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
Gracias por vuestras respuestas, pero la mejor solución es la de WebStudio, ya que la clave primaria de la tabla es el NIF y no es autoincremental los NIF's.

Thanxs
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:10.