Foros del Web » Programando para Internet » PHP »

Pasar variable id por URL

Estas en el tema de Pasar variable id por URL en el foro de PHP en Foros del Web. Hola amigos, quisiera saber como pasar mi variable id a través de un link actualmente tengo esto: <td><a href=buscar.php?<?php echo $id["id"]; ?>>detalles</a></td> pero me muestra ...
  #1 (permalink)  
Antiguo 23/03/2011, 08:06
 
Fecha de Ingreso: marzo-2011
Mensajes: 81
Antigüedad: 13 años
Puntos: 0
Pasar variable id por URL

Hola amigos, quisiera saber como pasar mi variable id a través de un link

actualmente tengo esto: <td><a href=buscar.php?<?php echo $id["id"]; ?>>detalles</a></td>
pero me muestra todos los registros que tengo el bd, cuando solo necesito que busque los detalles del registro seleccionado, estará faltando algo?? espero sus aporte, gracias...
  #2 (permalink)  
Antiguo 23/03/2011, 08:10
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 10 meses
Puntos: 394
Respuesta: Pasar variable id por URL

Bueno primero que todo debes mandar el identificador del registro... como lo estas haciendo va mas o menos bien... solo que no estas mandando la variable sino su valor... fijate:

<?php
echo "<td><a href='buscar.php?id=".$id["id"]."'>detalles</a></td>";
?>

O si lo quieres solo HTML sin echo:

<td><a href="buscar.php?id=<?php $id["id"]; ?>">detalles</a></td>

Y en la otra pagina recojes ID asi:

$id = $_GET['id'];

SELECT * FROM tabla WHERE id = $id;

Espero que aclare tus dudas
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Última edición por jotaincubus; 23/03/2011 a las 08:14 Razón: mas informacion
  #3 (permalink)  
Antiguo 24/03/2011, 07:24
 
Fecha de Ingreso: marzo-2011
Mensajes: 81
Antigüedad: 13 años
Puntos: 0
Respuesta: Pasar variable id por URL

Gracias por tu respuesta jotaincubus, me ha servido de mucho =)
  #4 (permalink)  
Antiguo 24/03/2011, 08:37
 
Fecha de Ingreso: marzo-2011
Mensajes: 81
Antigüedad: 13 años
Puntos: 0
Respuesta: Pasar variable id por URL

El problema que ahora presento es con la variable que envía el id la cual es: $id, esta la he declarado fuera de las otras variables que me deben de llevar a buscar.php.... estas están declaradas con $vc
bus.php
<?php while ($vc = mysql_fetch_assoc($queEmp)) { ?>
<tr>
<td><?php echo $id['id']; ?></td>
<td><?php echo $vc['nombre_emp']; ?></td>
<td><?php echo $vc['direccion']; ?></td>
<td><?php echo $vc['telefono']; ?></td>
En buscar.php
<td> <input type="text" name="nombre" id="nombre"size="20" value="<?php echo $vc['nombre']; ?>" /></td>
<td> <input type="text" name="direccion" id="direccion"size="20" value="<?php echo $vc['direccion']; ?>" /></td>
<td> <input type="text" name="telefono" id="telefono"size="20" value="<?php echo $vc['telefono']; ?>" /></td> ....

bus.php me muestra los campos y es donde tengo el link… funciona bien... el problema sigue siendo que no me llega la variable.. ahora no me llega nada..se que la instrucción que me muestras del link está bien, pero me indica que el erro esta en: <?php while ($vc = mysql_fetch_assoc($queEmp)) de la pagina buscar.php... esta línea funciona bien en bus.php, porque claro lo que se pide son los campos que están declarados con esa variable... entonces lo que he hecho es colocar esta instrucción a buscar.php de esta forma <?php while ($id = mysql_fetch_assoc($queEmp)) junto con la declaración de la variable: $id =$_GET["id"]; y $query = "SELECT * FROM tabla WHERE id=$id"; … estoy un poco confundida con este código, a lo mejor y la solución es algo sencillo..

Espero puedan ayudarme con esto, desde ya muchas gracias!
  #5 (permalink)  
Antiguo 24/03/2011, 08:41
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 10 meses
Puntos: 394
Respuesta: Pasar variable id por URL

Cual es el error que te esta mostrando ? muéstranos el código de la pagina que te esta mostrando el error...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #6 (permalink)  
Antiguo 24/03/2011, 10:20
 
Fecha de Ingreso: marzo-2011
Mensajes: 81
Antigüedad: 13 años
Puntos: 0
Respuesta: Pasar variable id por URL

<?php
require("conexion.php");

$dato = getParam($_GET["dato"], "");

$id =$_GET["id"];

$query = "SELECT * FROM empresa WHERE id=$id";

$queEmp = mysql_query($query,$conexion);
$rsEmp = mysql_fetch_assoc($queEmp);
$total = mysql_num_rows($queEmp);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PHP con MySQL: Consultar datos en MySQL</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>

</table>
<p>&nbsp;</p></td>
</tr>
</table>
<div>
<table width="200" border="0" align="center">
<tr>
<td><h3>Buscador de Empresas</h3>

<form id="frbuscar" name="frbuscar" method="get" action="bus_rif3.php">
<input name="dato" type="text" id="dato" size="20" value="<?php echo $dato; ?>" />

&nbsp;
<input type="submit" id="btbuscar" value="Buscar"/>
</form>

<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>

<th>Nombre</th>
<th>Direccion</th>
<th>Telefono</th>

</tr>
<?php while ($id = mysql_fetch_assoc($queEmp))

{ ?>
<tr>
<td>
</form>

<input type="text" name="nombre " id="nombre "size="20" value="<?php echo $vc['nombre']; ?>" />

</td>
<td> <input type="text" name="direccion " id="direccion "size="20" value="<?php echo $vc['direccion']; ?>" /> </td>
<td> <input type="text" name="telefono" id="telefono"size="20" value="<?php echo $vc['telefono']; ?>" /> </td>
<td> </td>

<input type="hidden" name="id" id="id" size="20" value="<?php echo $id["id"]; ?>" />
<td>&nbsp;</td>
</tr>
<?php } ?>

</table>
</td>
</tr>
</table>
</div>
<h3>&nbsp;</h3>
<h3>&nbsp;</h3>
<p>&nbsp;</p>
</body>
</html>
  #7 (permalink)  
Antiguo 24/03/2011, 10:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pasar variable id por URL

Cita:
Iniciado por jotaincubus Ver Mensaje
Cual es el error que te esta mostrando ? muéstranos el código de la pagina que te esta mostrando el error...
lesly40, ¿que entiendes por mensaje de error?

lo que has mostrado es el código... y también hace falta el mensaje de error que recibes!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 24/03/2011, 10:27
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 10 meses
Puntos: 394
Respuesta: Pasar variable id por URL

Cual es el error ? adicional explícanos que es lo que quieres... Supongo que tienes una pagina bus.php que muestra los detalles y en esa pagina tienes un enlace modificar que te lleva a buscar.php y ahí quieres mostrar los datos de ese registro dentro de las cajas de texto... Es eso ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #9 (permalink)  
Antiguo 24/03/2011, 11:18
 
Fecha de Ingreso: marzo-2011
Mensajes: 81
Antigüedad: 13 años
Puntos: 0
Respuesta: Pasar variable id por URL

Cierto es exactamente lo que quiero hacer, este es el error que me muestra:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\carpeta\buscar.php on line 112


en la linea 112 esta lo siguiente: <?php while ($id = mysql_fetch_assoc($queEmp))

en caso de que coloque:<?php while ($cv = mysql_fetch_assoc($queEmp)) y en el query:
$query = "SELECT * FROM empresa WHERE nombre like ".sqlValue($dato."%", "text")." ORDER BY nombre ASC";

me muestra todos los campos... me explique?
  #10 (permalink)  
Antiguo 24/03/2011, 11:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pasar variable id por URL

¿porque haces dos veces mysql_fetch_assoc()?

porque si lo piensas con calma, ya haces eso al inicio de tu script... ¡pero jamás usas dicha variable!
Código PHP:
$rsEmp mysql_fetch_assoc($queEmp); 
¿porque no usar dicha variable en lugar de lo que haces ahora?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 25/03/2011, 08:51
 
Fecha de Ingreso: marzo-2011
Mensajes: 81
Antigüedad: 13 años
Puntos: 0
Respuesta: Pasar variable id por URL

pateketrueke tienes razón al decir que coloque: $rsEmp = mysql_fetch_assoc($queEmp); en vez de $id = mysql_fetch_assoc($queEmp); es que antes estaba probando y use la variable rsEmp para todo en vez de $vc… ya he eliminada esta linea de código de allí, pero bien me explicaré mejor, para así poder recibir nuevamente sus grades aportes:

$vc = mysql_fetch_assoc($queEmp); se encuentra en bus.php la cual es la página que me trae los registro de bd... todos los registros que coincida con la palabra de búsqueda… hasta allí bien...

pues yo trabaje con un código muy parecido para buscar.php la cual es la pagina que me debe de mostrar solo los detalles, del registro seleccionado en bus.php por medio de un clic en: echo"<td><a href='buscar.php?id=".$id["id"]."'>detalles</a></td>";

La muestra del registro en especifico debe ser en buscar.php... declare la variable $id =$_GET["id"]; en esta misma página para que me trajera el registro seleccionado en bus.php y en vez de colocar: $query = "SELECT * FROM empresa WHERE nombre like ".sqlValue($dato."%", "text")." ORDER BY nombre ASC"; en buscar.php coloque $query = "SELECT * FROM empresa WHERE id=$id"; como lo sugirió jotaincubus…

el error que me muestra en buscar.php es: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\carpeta\buscar.php on line 112 en la linea 112 esta lo siguiente: <?php while ($id = mysql_fetch_assoc($queEmp)) en caso de que coloque:

<?php while ($vc = mysql_fetch_assoc($queEmp)) y no:

<?php while ($id = mysql_fetch_assoc($queEmp)) y en el query:

$query = "SELECT * FROM empresa WHERE nombre like ".sqlValue($dato."%", "text")." ORDER BY nombre ASC"; y no:
$query = "SELECT * FROM empresa WHERE id=$id"; en la pagina buscar.php al hacer clic en bus.php en : echo"<td><a href='buscar.php?id=".$id["id"]."'>detalles</a></td>";
como lo mencione anteriormente… me muestra los detalles de toodos los registro de base de datos porque de alguna manera no se le estaría indicando un filtro ni con el:
$query = "SELECT * FROM empresa WHERE nombre like ".sqlValue($dato."%", "text")." ORDER BY nombre ASC"; ni con :

<?php while ($vc = mysql_fetch_assoc($queEmp) porque en $vc están declaradas todas las variables…..

en caso de eliminar <?php while ($id = mysql_fetch_assoc($queEmp)) o <?php while ($vc = mysql_fetch_assoc($queEmp))

cualquiera de los dos de la página buscar.php…. Me muestra las casillas de texto vacías….

Le he dado vuelta a esto… y pienso que el problema evidentemente esta en: mysql_fetch_assoc() de la página buscar.php…

pero no encuentro como solucionarlo

porque mysql_fetch_assoc me hace el array asociativo de los registros que tengo en bd, según he investigado…

pues estoy algo confundida pensé que al colocar <?php while ($id = mysql_fetch_assoc($queEmp))
me traería para la página buscar.php solo los detalles del registro seleccionado en bus.php… pero no, espero de verdad me haya explicado mejor esta vez… gracias de antemano, espero una iluminada respuesta!
  #12 (permalink)  
Antiguo 25/03/2011, 10:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pasar variable id por URL

mira, vamos a concentrarnos en el mensaje de error y sus posibles causas:
Cita:
el error que me muestra en buscar.php es: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\carpeta\buscar.php on line 112 en la linea 112
ahí nos está diciendo que dicha función mysql_fetch_assoc() requiere de un argumento #resource y por alguna razón tu estás pasándole un boolean ¿por que?

la función mysql_query() devuelve lo siguiente según el manual:
Cita:
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.
nos indica que devuelve un boolean en caso de error, y de ahí viene todo el problema: la consulta que estas ejecutando no es correcta, tal ves exista un error en ella... pero, ¿como saberlo?

simple, hay que depurar siempre nuestras consultas:
Código PHP:
$result mysql_query(/* la consulta */) or die(mysql_error()); 
intenta corregir tu código y agrega dicha depuración a las consultas, seguro que eso te mostrará un mensaje de error mas claro... también, es recomendable guardar el texto de la consulta de SQL en una variable e imprimirla para conocer su valor exacto que le pasas a mysql_query()

Código PHP:
$sql "LA CONSULTA";
$result mysql_query($sql) or die('Error de Mysql: ' mysql_error() . "<pre>$sql</pre>"); 
jamás olvides eso...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 27/03/2011, 09:29
 
Fecha de Ingreso: marzo-2011
Mensajes: 81
Antigüedad: 13 años
Puntos: 0
Respuesta: Pasar variable id por URL

Listo amigos!!!! el gran-pequeño error estaba en buscar.php... Los campos los estaba llamando con $vc y lo correcto era llamarlo con $id ya que lo que se quiere es mostrar los campos dependiendo del id seleccionado.

Mil gracias por su ayuda, por apoyarme a encontrar la solución para este caso :D

Etiquetas: pasar, url, 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 15:47.