Foros del Web » Programando para Internet » PHP »

Duda con PHP y MySQL

Estas en el tema de Duda con PHP y MySQL en el foro de PHP en Foros del Web. Hola a todos. Tengo una página que muestra una serie de registros (en mi caso unos instrumentos músicales), los cuales quisiera que al hacer click ...
  #1 (permalink)  
Antiguo 08/03/2012, 08:38
 
Fecha de Ingreso: marzo-2012
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Duda con PHP y MySQL

Hola a todos.

Tengo una página que muestra una serie de registros (en mi caso unos instrumentos músicales), los cuales quisiera que al hacer click en el título, se abriera una página donde solo se mostrara el registro que he elegido ( tengo un campo ID, lo cual hace muy sencillo saber cual he elegido).

El problema es que no se que método debería usar para guardar un dato (el ID, o el nombre) y que al pulsar un enlace, ese dato se guardara y la pagina a la que enlazo sepa el dato. Tendría que guardar el ID en una variable de sesión, pero no se como hacer que se guarde al pulsar el enlace. Con un <form>?

En resumen, quiero tener un archivo que sea instrumento.php, que reciba un dato en función de un enlace que sea pasado por otra página.
  #2 (permalink)  
Antiguo 08/03/2012, 08:41
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Duda con PHP y MySQL

Query String ?


instrumentos.php?id=1

Código PHP:
Ver original
  1. $id = $_GET['id'];
  2. SELECT * FROM instrumentos WHERE id = $id;
  #3 (permalink)  
Antiguo 08/03/2012, 08:46
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Duda con PHP y MySQL

Hola, cuando dices que se abra la pagina del registro elegido , te refieres a una consulta a la base de datos imagino .


podrias crear una pagina generica "instrumento.php" como bien dices y pasar el valor del instrumento por la url

por ejemplo.

Lees los valores de la BD y generas enlaces de la siguiente forma

Código PHP:
Ver original
  1. <a href="instrumento.php?id=<?php echo $instrumento['id'] ?>"> <?php echo $instrumento['nombre'] </a>

donde $instrumento almacena una fila asociativa tomada del resultado de una consulta a la BD donde recuperaras los id y nombres de los instrumentos.


una vez hecho esto, en "instrumento.php" compruebas el array $_GET['id'] y compruebas que el valor del id sea un valor valido , debes filtrarlo para evitar que se introduzcan valores maliciosos.

posteriormente en ese mismo script puedes realizar la consulta a la BD con el ID recibido por get y dar formato html a la salida.

espero haber sido claro. y de ayuda. un saludo.
  #4 (permalink)  
Antiguo 08/03/2012, 08:51
 
Fecha de Ingreso: marzo-2012
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Duda con PHP y MySQL

Cita:
Iniciado por bray Ver Mensaje
Hola, cuando dices que se abra la pagina del registro elegido , te refieres a una consulta a la base de datos imagino .


podrias crear una pagina generica "instrumento.php" como bien dices y pasar el valor del instrumento por la url

por ejemplo.

Lees los valores de la BD y generas enlaces de la siguiente forma

Código PHP:
Ver original
  1. <a href="instrumento.php?id=<?php echo $instrumento['id'] ?>"> <?php echo $instrumento['nombre'] </a>

donde $instrumento almacena una fila asociativa tomada del resultado de una consulta a la BD donde recuperaras los id y nombres de los instrumentos.


una vez hecho esto, en "instrumento.php" compruebas el array $_GET['id'] y compruebas que el valor del id sea un valor valido , debes filtrarlo para evitar que se introduzcan valores maliciosos.

posteriormente en ese mismo script puedes realizar la consulta a la BD con el ID recibido por get y dar formato html a la salida.

espero haber sido claro. y de ayuda. un saludo.
Muchas gracias, entiendo como funcionaría entonces. Es justo lo que quería, una página genérica que mostrara los datos según lo elegido.

Voy a probar el código pues.

Etiquetas: mysql, registro, variables
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 23:26.