Foros del Web » Programando para Internet » PHP »

Clic en un hipervinculo para que muestre un registro de una tabla

Estas en el tema de Clic en un hipervinculo para que muestre un registro de una tabla en el foro de PHP en Foros del Web. Tengo una tabla con los siguientes campos: Codigo / Nombre / Foto / Resumen / Fotogrande En la pagina libros.php aparece un listado de todos ...
  #1 (permalink)  
Antiguo 03/09/2008, 16:52
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Clic en un hipervinculo para que muestre un registro de una tabla

Tengo una tabla con los siguientes campos:
Codigo / Nombre / Foto / Resumen / Fotogrande
En la pagina libros.php aparece un listado de todos los libros de la tabla LIBROS:
Los registros que se listan son:
Codigo / Nombre / Foto (con un hipervinculo llamado AMPLIAR).

Problema: quiero que al hacer clic en AMPLIAR, esto me lleve a otra pagina (llamada librosamp.php) en donde se vea solo el registro del libro seleccionado con los siguientes campos:
Codigo / Nombre / Resumen / Fotogrande

Quisiera saber como hacer el hipervinculo AMPLIAR y como hago el SELECT de la pagina librosamp.php
  #2 (permalink)  
Antiguo 03/09/2008, 16:58
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

el hipervinculo iria asi


Código PHP:
<a href='Ampliarlibros.php?Codigo=<?=$Codigo;?>' >Ampliar</a>

en Ampliarlibros.php

Código PHP:
$CodigoLibro$_GET['Codigo'];
$ConsultaLibro mysql_query("select * from libros where Codlib='$CodigoLibro' "); 
  #3 (permalink)  
Antiguo 04/09/2008, 06:46
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

Gracias helacer... lo pruebo y te cuento.
  #4 (permalink)  
Antiguo 04/09/2008, 10:59
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

Yo de nuevo.
He probado el codigo y hay algo que no funciona ya que cuando hago clic en el vinculo AMPLIAR me lleva a librosamp.php, pero esta pagina aparece en blanco.
Aca va el codigo del hipervinculo que uso en libros.php
Cita:
<a href='librosamp.php?id=<?=$Codigo;?>' >» AMPLIAR</a>
Aqui les paso el codigo de librosamp.php:
Cita:
<?php
$conexion = mysql_connect('localhost', 'root', '112233');
mysql_select_db('ediciones');
$CodigoLibro= $_GET['id'];
$ConsultaLibro = mysql_query("select * from libros where id='$CodigoLibro' ");

while ($registro = mysql_fetch_array($ConsultaLibro)) {
?>
</p>
<p>&nbsp;</p>
<table width="940" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="100" rowspan="3" bgcolor="#66FFCC"><div align="center"><img src="../miniaturas-en-edicion/<?php echo $registro['tapa']; ?>" width="65" height="100" border="0"></a></div></td>
<td height="26" colspan="2" valign="top" bgcolor="#66FFCC"><span class="Subtitulo"><strong><?php echo $registro['esp_nombre']; ?> - <?php echo $registro['cod']; ?><br>
<span class="autor"><?php echo $registro['autor']; ?></span></td>
</tr>
<tr>
<td height="51" colspan="2" valign="middle" bgcolor="#66FFCC"><p><?php echo $registro['esp_resecom']; ?></td>
</tr>
<tr>
<td width="82%" height="20" valign="middle" bgcolor="#66FFCC">PRECIO <span class="Estilo3">u$s</span><?php echo $registro['precio']; ?> <span class="Estilo3">peso</span> <?php echo $registro['peso']; ?></td>
<td width="8%" height="20" valign="middle" bgcolor="#66FFCC"><div align="right"><a href="formulario.htm">ENCARGAR</a></div></td>
</tr>

<tr>
<td height="16" colspan="3" bgcolor="#66FFCC"><div align="center"><img src="../linea-divisora.jpg" width="763" height="2"></div></td>
</tr>

<?php
}
mysql_free_result($ConsultaLibro);
mysql_close($conexion);
?>
Espero que puedan ayudarme... gracias.
  #5 (permalink)  
Antiguo 04/09/2008, 11:04
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 8 meses
Puntos: 103
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

y si prtuebas asi:
Código PHP:
<a href="librosamp.php?id=<?echo $Codigo;?>" >» AMPLIAR</a>

ademas en el while que aparece al principio no esta denominado el valor de $registro.
  #6 (permalink)  
Antiguo 04/09/2008, 11:12
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

Te recomiendo que leas un poco acerca de $_GET y $_POST para que entiendas el concepto y no solo resuelvas un problema sin saber como lo hiciste.

Ahora si... en el primer caso estas pasando por $_GET una variable llamada $Codigo, y en la segunda parte la recibes como $id, es decir que nunca llegará

Si la envías como $Codigo, recíbela como $Código.

Algo mas, no es recomendable usar (y creo que para PHP 6 ya no será posible) las short tags, es decir usa <?php echo ?> en vez de <?= ?>

Tu caso:

Código PHP:
<a href='librosamp.php?id=<?php echo $Codigo?>' >» AMPLIAR</a>
Código PHP:
$CodigoLibro$_GET['Codigo']; 
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #7 (permalink)  
Antiguo 04/09/2008, 11:20
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

Gracias chwc y lucasan. Es cierto que mucho no se de $_GET y $_POST, aunque del error me habia dado cuenta, solo que no me dieron tiempo de editar y corregir... eso habla de lo buenos y rapidos que son (aparte de capos en PHP). Voy a analizar un poco lo que me pasaron, probar (y leer un poco mas) y les cuento...
  #8 (permalink)  
Antiguo 04/09/2008, 13:18
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

Bien. Estuve viendo algo de $_GET y sigo sin entender una parte del codigo que me paso lucasan.
de esta linea:
<a href='librosamp.php?id=<?php echo $Codigo; ?>' >» AMPLIAR</a>

Esto: <?php echo $Codigo; ?>

¿almacena en $Codigo el valor del campo id correspondiente al registro elegido?

El tema es que hice los cambios y sigue sin funcionar...
  #9 (permalink)  
Antiguo 04/09/2008, 14:30
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

No, ese trozo de código solo te mostrará el contenido de la variable $Codigo y al dar click lo pasará por GET.

Como guardar en esa variable el valor de un ID es otro tema, y muy complejo resolverlo si no sabemos de donde salen tus datos, nos pasaste solo esa porción de código.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #10 (permalink)  
Antiguo 04/09/2008, 14:40
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

Quité este mensaje y lo reemplacé con el que sigue.
Gracias.

Última edición por ealaequis; 07/09/2008 a las 09:00
  #11 (permalink)  
Antiguo 07/09/2008, 08:53
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Busqueda Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

Gente. Solucione el problema (aunque en forma parcial).
Este es el dodigo:
Código PHP:
  <?php
$conexion 
mysql_connect('localhost''root''???');
mysql_select_db('ediciones');
$cod=$cod+1;
$consulta mysql_query("SELECT * FROM libros");
while (
$registro mysql_fetch_array($consulta)) {
?>
</p>
<table width="940"  border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="100" rowspan="3" bgcolor="#66FFCC"><div align="center"><img src="../miniaturas-en-edicion/<?php echo $registro['tapa']; ?>" width="65" height="100" border="0"></a></div></td>
    <td height="26" colspan="2" valign="top" bgcolor="#66FFCC"><span class="Subtitulo"><strong><?php echo $registro['esp_nombre']; ?> - <?php echo $registro['cod']; ?><br>
    <span class="autor"><?php echo $registro['autor']; ?></span></td>
  </tr>
  <tr>
    <td height="51" colspan="2" valign="middle" bgcolor="#66FFCC"><p><?php echo $registro['esp_rese']; ?>... <a href='librosamp.php?cod=<?php echo $cod?>' >» AMPLIAR</a></p></td>
  </tr>
  <tr>
    <td width="82%" height="20" valign="middle" bgcolor="#66FFCC">PRECIO <span class="Estilo3">u$s</span><?php echo $registro['precio']; ?> <span class="Estilo3">peso</span> <?php echo $registro['peso']; ?></td>
    <td width="8%" height="20" valign="middle" bgcolor="#66FFCC"><div align="right"><a href="formulario.htm">ENCARGAR</a></div></td>
  </tr>
  
  <tr>
    <td height="16" colspan="3" bgcolor="#66FFCC"><div align="center"><img src="../linea-divisora.jpg" width="763" height="2"></div></td>
  </tr>
  
  <?php
  $cod
=$cod+1;
}
mysql_free_result($consulta);
mysql_close($conexion);
?>
La variable $cod se va incrementando y a la vez coincide con el valor del campo id, por lo que (cuando hago el SELECT de la pagina librosamp.php) tomo solamente la consulta para los campos que coinciden con $cod. Como id es autoincrementable es unica, de esta forma solo me lista el registro en cuestion.
De todas formas detecto que puede haber ciertos problemas:
1. No puedo eliminar ningun registro de la tabla (ejemplo, si elimino el registro 3, cuando tenga listados los registros van 1, 2 y saltea al 4). Esto es algo controlable ya que no debo permitir el borrado de registros de la tabla. Simplemente agregare un campo "baja" en donde se controle si el registro se debe o no mostrar en el listado general.
2. No sirve para cuando hago ordenamientos que mezcle los registros (por ejemplo por fecha o por orden alfabetico).
3. No se que va a pasar cuando haga la paginacion de resultados... despues les cuento.


Es lo que se me ocurrió y funciona. Espero que a alguien le sirva, por eso lo publico. Repito los agradecimientos a quienes consultaron este tema e intentaron ayudarme y aprovecho para disculparme por no haber sido del todo claro en mis preguntas.
Si a alguien puede ayudarme con los problemas que mencioné, agradecido de antemano.
  #12 (permalink)  
Antiguo 07/09/2008, 09:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

En tu tabla tienes un campo ID cierto? Pues usa ese campo para generar la URL para el vínculo:

Código PHP:
<a href='librosamp.php?cod=<?php echo $registro['id']; ?>' >» AMPLIAR</a>
y olvídate de la variable $cod y esas cosas

Un saludo,
  #13 (permalink)  
Antiguo 07/09/2008, 09:22
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Clic en un hipervinculo para que muestre un registro de una tabla

Perfecto!!!
Funcionó 10 puntos. Muchisimas gracias okram.
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 13:31.