Foros del Web » Programando para Internet » PHP »

Links dinámicos

Estas en el tema de Links dinámicos en el foro de PHP en Foros del Web. Quisiera saber cómo generar links dinámicos, aunque no se si este sea el término correcto, me explico mejor: Tengo una tabla con los campos: código, ...
  #1 (permalink)  
Antiguo 15/03/2005, 16:14
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Links dinámicos

Quisiera saber cómo generar links dinámicos, aunque no se si este sea el término correcto, me explico mejor:

Tengo una tabla con los campos: código, producto, precio, descripción, imagen, a partir de esto genero un listado con los campos producto y precio por ejemplo - hasta ahí todo bien, ahora mi idea es además que se genere un link que diga algo así como: "más info", es decir que quedaría de esta forma:

Producto Precio más info(que sería el link)

Dicho link me debería llevar a visualizar el registro completo con el siguiente formato:

Código Producto Precio Descripción Imagen

Mi problema es que no se cómo generar ese link, ya que cambiará según el registro que sea.

Espero puedan ayudarme.
Muchas gracias!!!
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 15/03/2005, 16:55
Avatar de renton  
Fecha de Ingreso: enero-2004
Ubicación: BCN (PPCC)
Mensajes: 573
Antigüedad: 20 años, 2 meses
Puntos: 1
Dinamizando el link de la siguiente forma:

Código:
<a href="paginainfo.php?idProd=<?php echo ($row['codigo']);?>">+ Info</a>

Y luego en la pagina de la info recoges el codigo y haces la consulta del rollo:

Código:
sql="select * from productos where codigo='".$_GET['codigo']."';"
Y voilà!

Un saludo!
__________________
"No et limites a contemplar aquestes hores que ara venen, baixa al carrer i participa.
No podran res davant un poble unit, alegre i combatiu!!"
  #3 (permalink)  
Antiguo 15/03/2005, 17:09
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
Es mas facil asi:

Código PHP:
<a href="paginainfo.php?cod=<?=$row['codigo']?>&prod=<?=$row['producto']?>&precio=<?=$row['precio']?>&desc=<?=$row['descripcion']?>&img=<?=$row['imagen']?>">+ Info</a>
En fin, algo así y luego tienes que recuperar las variables como dijo renton, con $_GET['nombre_de_la_varable'];

Saludos
__________________
I Love Programming...
  #4 (permalink)  
Antiguo 15/03/2005, 19:43
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 8 meses
Puntos: 7
Fulano, porque es mas facil tu codigo?
Chaop!
  #5 (permalink)  
Antiguo 15/03/2005, 20:01
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
porque te ahorras todos los "echo"

En lugar de hacer:
<?php echo ($row['codigo']);?>
hago:
<?=$row['codigo']?>

Me ahorro 12 caracteres, si esta bien o mal no lo se, yo solamente dije que es mas facil.
__________________
I Love Programming...
  #6 (permalink)  
Antiguo 15/03/2005, 20:26
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 8 meses
Puntos: 7
bien...
Chaop!
  #7 (permalink)  
Antiguo 16/03/2005, 04:14
Avatar de renton  
Fecha de Ingreso: enero-2004
Ubicación: BCN (PPCC)
Mensajes: 573
Antigüedad: 20 años, 2 meses
Puntos: 1
ah cony! en php tambien se puede utilizar el "=" ??
Pensaba que solo era en ASP!
Ningun dia te acostaras...!
__________________
"No et limites a contemplar aquestes hores que ara venen, baixa al carrer i participa.
No podran res davant un poble unit, alegre i combatiu!!"
  #8 (permalink)  
Antiguo 21/03/2005, 07:42
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Hola Renton!! Estuve probando lo que mandaste, a ver si entendí bien:

en el archivo "listado.php" puse el siguiente código para generar los links dinámicos: echo "<td bordercolor='#ffffff'><a href='paginainfo.php?id=<?php echo ($Row[cod_interno]);?>'>más info</a></td>"; // tuve que poner $Row[cod_interno] son comillas simples(' ') porque de esa manera me da error.

Luego hice una página llamada "paginainfo.php" en donde supuestamente se generará la información necesaria correspondiente al registro seleccionado. En la misma ingresé el siguiente código:

$Query = "SELECT * FROM productos WHERE cod_interno='".$_GET['cod_interno']."'";

Pero sucede que cuando clickeo en "más info" de cualquier registro, sí pasa a la página

"paginainfo" y al registro correspondiente pero no visualiza nada.

Bueno gracias por tu ayuda de todos modos!
__________________
Saludos!!!
Maru.-
  #9 (permalink)  
Antiguo 21/03/2005, 10:43
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
tienes que tener en cuenta que la variable $row no es lo mismo que $Row (PHP distingue entre mayusculas y minusculas), tendríamos que ver tu codigo entero.

En el link, figuran todos los datos? si en el link los datos estas el problema es de como estas recibiendo los mismos, prueba con esto:

$Query = mysql_query("SELECT * FROM productos WHERE cod_interno= '$_GET[cod_interno]'");
if($row.....) {

Saludos
__________________
I Love Programming...
  #10 (permalink)  
Antiguo 21/03/2005, 10:59
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
Tambien fijate que en $_get estas pidiendo por 'cod_interno' cuando en el link la variable la pasas como id : 'paginainfo.php?id=<?php echo ($Row[cod_interno]);?>'
Miralo.
Suerte
  #11 (permalink)  
Antiguo 22/03/2005, 08:32
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Les paso el código porque para mi el problema está en la concatenación y no se como solucionarlo. (bue! por ahí me equivoco).

Muchas gracias!!!

paginalinks.php

Código PHP:
<?php

$Host 
"localhost";
$User "";
$Password "";
$Base "empresa";
$Tabla "productos";

//conecta la base
$Link mysql_connect ($Host$User$Password);

//realiza la consulta
$Query "SELECT * FROM $Tabla ORDER BY cod_interno";
$Result mysql_db_query ($Base$Query$Link);

echo 
"<table width='80%> \n";
echo 
"<td bgcolor = #ffcc99 align=center><font size='2'><b>Descripción</b></font></td> \n";
echo 
"<td bgcolor = #ffcc99 align=right><font size='2'><b>Precio</b></font></td> \n";
echo 
"</tr> \n";

while (
$Row mysql_fetch_array ($Result)) {
    echo 
"<td bordercolor='#ffffff'><font size='2'>".$Row["descripcion"]."</font></td> \n";
    echo 
"<td bordercolor='#ffffff'><font size='2'>".$Row["precio"]."</font></td> \n";
    echo 
"<td bordercolor='#ffffff'><a href='paginainfo.php?id=<?php echo ($Row[cod_interno]);?>'>más info</a></td>"// para mi el problema está acá
}

echo 
"</table> \n";
print (
"<br>");

//cierra la base
mysql_close ($Link);

?>

paginainfo.php

Código PHP:
<?php

$Host 
"localhost";
$User "";
$Password "";
$Base "empresa";
$Tabla "productos";

//conecta la base
$Link mysql_connect ($Host$User$Password) or die("Error vp conexion ".mysql_error());
mysql_select_db($Base$Link) or die("Error select db ".mysql_error());


//realiza la consulta
$Query "SELECT * FROM productos WHERE cod_interno='".$_GET['cod_interno']."'";
$Result=mysql_query($Query$Link) or die("error query $Query "mysql_error());


while (
$registro=mysql_fetch_array($Result))
 {    
   echo 
"<table> \n";
   echo 
"<tr> \n";
   echo 
"<td>Código Interno:</td> \n";
   echo 
"<td>".$registro['cod_interno']."</td>"
   echo 
"<td rowspan='4'><img src=\"./Productos/imagenes/".$registro['imagen']."\"></td>"
   echo 
"</tr> \n";
   echo 
"<td>Descripción:</td> \n";
   echo 
"<td>".$registro['descripcion']."</td>"
   echo 
"</tr> \n";
   echo 
"<td>Precio</td> \n";
   echo 
"<td>".$registro['precio']."</td>"
   echo 
"</tr> \n";
   echo 
"<td>Observación:</td> \n";
   echo 
"<td>".$registro['observacion']."</td>"
   echo 
"</tr> \n";        
  }
echo 
"</table>"

//cierra la base
mysql_close ($Link);

?>
__________________
Saludos!!!
Maru.-
  #12 (permalink)  
Antiguo 23/03/2005, 07:53
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
El error esta justo donde decias

dentro de un echo ""; no puedes abrir y cerrar los tac de php solo tenias que concatenar como ahora esta en el codigo que pegue.


no puedes hacer esto
echo "<td bordercolor='#ffffff'><a href='paginainfo.php?id=<?php echo ($Row[cod_interno]);?>'>más info</a></td>";

esta seria la forma correcta
echo "<td bordercolor='#ffffff'><a href='paginainfo.php?id=" .$Row["cod_interno"]. "'>más info</a></td>";

paginalinks.php

Código PHP:
<?php

$Host 
"localhost";
$User "";
$Password "";
$Base "empresa";
$Tabla "productos";

//conecta la base
$Link mysql_connect ($Host$User$Password);

//realiza la consulta
$Query "SELECT * FROM $Tabla ORDER BY cod_interno";
$Result mysql_db_query ($Base$Query$Link);

echo 
"<table width='80%> \n";
echo 
"<td bgcolor = #ffcc99 align=center><font size='2'><b>Descripción</b></font></td> \n";
echo 
"<td bgcolor = #ffcc99 align=right><font size='2'><b>Precio</b></font></td> \n";
echo 
"</tr> \n";

while (
$Row mysql_fetch_array ($Result)) {
    echo 
"<td bordercolor='#ffffff'><font size='2'>".$Row["descripcion"]."</font></td> \n";
    echo 
"<td bordercolor='#ffffff'><font size='2'>".$Row["precio"]."</font></td> \n";
    echo 
"<td bordercolor='#ffffff'><a href='paginainfo.php?id=" .$Row["cod_interno"]. "'>más info</a></td>"// para mi el problema está acá
}

echo 
"</table> \n";
print (
"<br>");

//cierra la base
mysql_close ($Link);

?>
ahora deberia funcionar suerte.

Última edición por alexis77; 23/03/2005 a las 07:59
  #13 (permalink)  
Antiguo 24/03/2005, 17:42
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Gracias por tu ayuda Alexis!!! al parecer ahora está bien

concatenado!!!

El problema es que la variable "cod_interno" no llega a

"paginainfo.php", el error que da es el siguiente: Notice: Undefined

index: cod_interno in c:\foxserv\www\paginainfo.php on line 18

Estuve intentando toda la tarde pero no logré demasiado.

Saludos!!! y gracias de nuevo!!!
__________________
Saludos!!!
Maru.-
  #14 (permalink)  
Antiguo 30/03/2005, 06:44
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
Si te das cuenta cod_interno estas igualando a id a la variable que tienes que capturar ahora es a $id

solo tenias que cambiar este: $_GET['cod_interno']

por este: $_GET['id']



paginainfo.php

Código PHP:
<?php 

$Host 
"localhost"
$User ""
$Password ""
$Base "empresa"
$Tabla "productos"

//conecta la base 
$Link mysql_connect ($Host$User$Password) or die("Error vp conexion ".mysql_error()); 
mysql_select_db($Base$Link) or die("Error select db ".mysql_error()); 


//realiza la consulta 
$Query "SELECT * FROM productos WHERE cod_interno='".$_GET['id']."'"
$Result=mysql_query($Query$Link) or die("error query $Query "mysql_error()); 


while (
$registro=mysql_fetch_array($Result)) 
{     
   echo 
"<table> \n"
   echo 
"<tr> \n"
   echo 
"<td>Código Interno:</td> \n"
   echo 
"<td>".$registro['cod_interno']."</td>"
   echo 
"<td rowspan='4'><img src=\"./Productos/imagenes/".$registro['imagen']."\"></td>"
   echo 
"</tr> \n"
   echo 
"<td>Descripción:</td> \n"
   echo 
"<td>".$registro['descripcion']."</td>"
   echo 
"</tr> \n"
   echo 
"<td>Precio</td> \n"
   echo 
"<td>".$registro['precio']."</td>"
   echo 
"</tr> \n"
   echo 
"<td>Observación:</td> \n"
   echo 
"<td>".$registro['observacion']."</td>"
   echo 
"</tr> \n";         
  } 
echo 
"</table>"

//cierra la base 
mysql_close ($Link); 

?>
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:13.