Foros del Web » Programando para Internet » PHP »

Pasar parametro por ID

Estas en el tema de Pasar parametro por ID en el foro de PHP en Foros del Web. Hola amig@s del foro, estoy pasando valores por ID. Mi código es el siguiente: Esta es la consulta.... .... $query = "SELECT * FROM mi_tabla"; ...
  #1 (permalink)  
Antiguo 19/04/2012, 08:55
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 5
Pregunta Pasar parametro por ID

Hola amig@s del foro, estoy pasando valores por ID. Mi código es el siguiente:
Esta es la consulta....
....
$query = "SELECT * FROM mi_tabla";
$queRes = mysql_query($query, $conexion);
.........
Luego tengo un While....

<?php while ($row = mysql_fetch_assoc($queryRes))
{
?>
Acá imprimo unos valores
y luego quiero que por el ID me muestre... en un iframe todos los valores, y para ello lo hago de la siguiente forma.

window.frames.resultado.location.href="mas_info.ph p?id=<?php echo $row['id']; ?>";
<?php } ?>/*Cierre del While*/

Pero no sé porque me muestra el resultado de el último ID, aunque haga clic sobre otro dato, me muestra el resultado del último registro.

Y el código de mas_info.php es el siguiente:
------------------------------------------------------------------------------------
<?php
error_reporting(E_ALL & ~E_NOTICE);
require("../config/conexion.php");
require("../config/funciones.php");
$identificador = $_GET['id']; -->Acá obtengo el valor del ID que es tomado de la DB
$query = "SELECT * FROM mi_tabla WHERE id =$identificador";
$query2 = mysql_query($query, $conexion);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="../css/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3>Resultados </h3>
<table width="250" border="1">
<?php while ($row = mysql_fetch_assoc($query2)) { ?>
<tr>
<td width="73">Empresa</td>
<td width="111"><?php echo $row['empresa']; ?></td>
</tr>
<tr>
<td>Direccion</td>
<td><?php echo$row['direccion']; ?></td>
</tr>
<tr>
<td>Telefono</td>
<td><?php echo $row['telefono']; ?></td>
</tr>
<tr>
<td>E-mail</td>
<td><?php echo $row['email']; ?></td>
</tr>
<?php } ?>
</table>


----------------------------------------------------------------------------------------

Gracias desde ya amigos del foro, espero sus comentario para saber que estoy haciendo mal.
  #2 (permalink)  
Antiguo 19/04/2012, 08:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Pasar parametro por ID

Pues tú problema es que solo tienes 1 iframe, y por consiguiente solo va a cargar el último ID ya que es la última ejecución.

Tienes que en dado caso crear un iframe en cada vuelta de tu while por ejemplo:
Código PHP:
Ver original
  1. <?php
  2. while(/*stuff*/) {
  3. ?>
  4. <iframe src="datos.php?id=<?php echo $id; ?>"></iframe>
  5. <?php } ?>

Así creas un iframe por cada vuelta del while con los datos.

Saludos.
  #3 (permalink)  
Antiguo 19/04/2012, 09:26
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Pasar parametro por ID

Gracias GatoV por tu pronta respuesta, haré lo que me dices.

Muchísimas gracias

Swab
  #4 (permalink)  
Antiguo 20/04/2012, 06:25
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Pasar parametro por ID

GatorV, lo que hice como me dijiste fue lo siguiente, pero no me muestra el resultado al hacer clic en el punto del mapa.

Código PHP:
Ver original
  1. <?php while ($rsTurismo = mysql_fetch_assoc($queTurismo))
  2.      {
  3.      ?>
  4.         var myLatLng  =  new google.maps.LatLng(<?php echo $rsTurismo['lat']; ?>, <?php echo $rsTurismo['lng']; ?>);
  5.         var empresa   =  <?php echo "\"" . $rsTurismo['empresa'] . "\""; ?>;
  6.         var direccion =  <?php echo "\"" . $rsTurismo['direccion'] . "\""; ?>;
  7.         var telefono  =  <?php echo "\"" . $rsTurismo['telefono'] . "\""; ?>;
  8.         var image     =  <?php echo "\"" . $rsTurismo['icono']. "\"";  ?>;
  9.         //Vamos añaddiendo el marcador
  10.         var marker    =  new google.maps.Marker(
  11.          {
  12.           position: myLatLng,
  13.           draggable:false,
  14.           animation: google.maps.Animation.DROP,
  15.           map: map,
  16.           icon: image
  17.        });//Cerramos el maker
  18.         var marcadores ='<b>Empresa:</b>' +empresa + '<br>' + '<b>Direcci&oacute;n:</b>' +direccion + '<br>' + '<b>Tel&eacute;fono:</b>'+telefono;
  19.  
  20.         // Agregar ventana de información con evento
  21.         MuestraInfo( marker, marcadores);
  22.      
  23.         //Función para mostrar mis datos
  24.         function MuestraInfo(marker, msg) {
  25.            // Crear ventana de información.
  26.              var infowindow = new google.maps.InfoWindow({
  27.              content : msg
  28.             });
  29.             // Crear evento para mostrar la ventana al dar click
  30.             google.maps.event.addListener(marker, 'click', function(){
  31.             <?php
  32.              echo '<iframe src="info.php?id=<?php echo $id; ?>" target="resultado"></iframe>';
  33.             ?>     
  34.             });
  35.         }
  36.  
  37.   <?php } ?>/*Cierre del While*/
Código PHP:
Ver original
  1. echo '<iframe src="info.php?id=<?php echo $id; ?>" target="resultado"></iframe>';
Esta es la línea que debería llamar a mi iframe de name="resultado"... pero no me muestra nada.

Info.php tiene lo siguiente:
Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE);
  3. //Incluyo la variable de sesión
  4. if(!isset($_SESSION['s_username']))
  5. header("location: ../index.php");  //Redirecciono si no ha hecho login
  6. //Acá recogo el id
  7. $identificador = $_GET['id'];
  8. $query = "SELECT * FROM mi_tabla WHERE id =$identificador";
  9. $queTurismo = mysql_query($query, $conexion);
  10. ?>
  11. <html>
  12. <head>
  13. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  14. <link href="../css/styles.css" rel="stylesheet" type="text/css" />
  15. </head>
  16. <body>
  17. <h3>Resultados </h3>
  18. <table width="250" border="1">
  19.    <?php while ($rsTurismo = mysql_fetch_assoc($queTurismo)) { ?>
  20.   <tr>
  21.     <td width="73">Empresa</td>
  22.     <td width="111"><?php echo $rsTurismo['empresa']; ?></td>
  23.   </tr>
  24.   <tr>
  25.     <td>Direccion</td>
  26.     <td><?php echo $rsTurismo['direccion']; ?></td>
  27.   </tr>
  28.   <tr>
  29.     <td>Telefono</td>
  30.     <td><?php echo $rsTurismo['telefono']; ?></td>
  31.   </tr>
  32.   <tr>
  33.     <td>E-mail</td>
  34.     <td><?php echo $rsTurismo['email']; ?></td>
  35.   </tr>
  36.    <?php } ?>
  37. </table>

LO que tenía antes era en la línea de mi index.php era esta y me mostraba solo el último ID:
Código PHP:
Ver original
  1. window.frames.resultado.location.href="info.php?id=<?php echo $rsTurismo['id']; ?>";

Desde ya les agradezco me puedan ver que estoy haciendo mal
Swab

Última edición por Swab; 20/04/2012 a las 07:52
  #5 (permalink)  
Antiguo 20/04/2012, 08:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Pasar parametro por ID

Tienes que estudiar un poco más de lo que es PHP y lo que es Javascript. No puedes poner PHP en una función javascript y esperar que el PHP se ejecute cuando se llama directamente a la función.

Para eso necesitas ocupar AJAX para mandar el parámetro y traer los resultados, lo que estas tratando de hacer no es posible directamente, te recomiendo estudies un poco más de javascript, igual no necesitas AJAX para lo que necesitas pero sí de como funciona Javascript y como llamar a eventos.

Saludos.
  #6 (permalink)  
Antiguo 20/04/2012, 08:48
Avatar de FerraN10  
Fecha de Ingreso: junio-2011
Ubicación: Sant Joan Despí
Mensajes: 79
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Pasar parametro por ID

te recomiendo que en ciertas partes del codigo hagas tipo:

<input type="hidden" id="<?=$reslinea['id']?>">

No es por nada pero queda mas limpio el id="<?=$reslinea['id']?>" que no un:

id="<?echo $reslinea['id']?>"

Almenos par ami opinion
__________________
El fin de mi tarea no fue el fin sino el trayecto
Si vivir es la odisea el horizonte que clarea
En esta aldea parece perfecto así que bienvenido lo que sea
  #7 (permalink)  
Antiguo 20/04/2012, 13:31
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Pasar parametro por ID

Muchas gracias a ambos, tomaré tu consejo GatorV, voy a ver lo que me dices de leer un poco más acerca de esto.
De que me muestra el último valor de la tabla me lo muestra, en iframe o en un pop-up aparte ; pero no llego a darle solución , cuando lo solucione lo compartiré por si alguien lo necesita.

Gracias al otro amigo también por su comentario

Swab
  #8 (permalink)  
Antiguo 20/04/2012, 14:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Pasar parametro por ID

Ve esto:
Código PHP:
Ver original
  1. <?php while ($rsTurismo = mysql_fetch_assoc($queTurismo))
  2. * * *{
  3. * * *?>
  4. * * * * var myLatLng *= *new google.maps.LatLng(<?php echo $rsTurismo['lat']; ?>, <?php echo $rsTurismo['lng']; ?>);
  5. * * * * var empresa * = *<?php echo "\"" . $rsTurismo['empresa'] . "\""; ?>;
  6. * * * * var direccion = *<?php echo "\"" . $rsTurismo['direccion'] . "\""; ?>;
  7. * * * * var telefono *= *<?php echo "\"" . $rsTurismo['telefono'] . "\""; ?>;
  8. * * * * var image * * = *<?php echo "\"" . $rsTurismo['icono']. "\""; *?>;
  9. * * * * //Vamos añaddiendo el marcador
  10. * * * * var marker * *= *new google.maps.Marker(
  11. * * * * *{
  12. * * * * * position: myLatLng,
  13. * * * * * draggable:false,
  14. * * * * * animation: google.maps.Animation.DROP,
  15. * * * * * map: map,
  16. * * * * * icon: image
  17. * * * *});//Cerramos el maker
  18. * * * * var marcadores ='<b>Empresa:</b>' +empresa + '<br>' + '<b>Direcci&oacute;n:</b>' +direccion + '<br>' + '<b>Tel&eacute;fono:</b>'+telefono;
  19. *
  20. * * * * // Agregar ventana de información con evento
  21. * * * * MuestraInfo( marker, marcadores);
  22. * * *
  23. * * * * //Función para mostrar mis datos
  24. * * * * function MuestraInfo(marker, msg) {
  25. * * * * * *// Crear ventana de información.
  26. * * * * * * *var infowindow = new google.maps.InfoWindow({
  27. * * * * * * *content : msg
  28. * * * * * * });
  29. * * * * * * // Crear evento para mostrar la ventana al dar click
  30. * * * * * * google.maps.event.addListener(marker, 'click', function(){
  31. * * * * * *         alert('<?php echo $rsTurismo['id']; ?>');
  32. * * * * * * });
  33. * * * * }
  34. *
  35. * <?php } ?>/*Cierre del While*/

Con eso te puedes dar una idea que cada que se llame va a tener el id puesto, solo es que hagas una función que cargue en base a ese id que estas pasando pero solo al momento de llamar la función.

Saludos.
  #9 (permalink)  
Antiguo 24/04/2012, 09:02
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Pasar parametro por ID

Muchas Gracias Amigo GatorV... ya lo había probado, me muestra solo el último resultado

Serías tan amable de mostrarme un ejemplo en Ajax, y como puedo en esas lineas llamar la función.

He estado leyendo, probando con algunas funciones Ajax... algo estoy haciendo mal que no me muestra el mapa ni los puntos.

Sigo con el mismo problema, solo me muestra el último ID.
Te agradecería me muestres un ejemplo de ayuda.

Muchas Gracias

Swab
  #10 (permalink)  
Antiguo 24/04/2012, 09:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Pasar parametro por ID

Ah ya vi tu problema, estas imprimiendo la función y evaluándola al mismo tiempo, por eso te muestra el último ID, tienes que estudiar un poco más de javascript, y como agregar funciones y evaluarlas, recuerda que PHP y Javascript son cosas muy diferentes:

Código PHP:
Ver original
  1. <?php while ($rsTurismo = mysql_fetch_assoc($queTurismo)) { ?>
  2.     var myLatLng *= *new google.maps.LatLng(<?php echo $rsTurismo['lat']; ?>, <?php echo $rsTurismo['lng']; ?>);
  3.     var empresa * = *<?php echo "\"" . $rsTurismo['empresa'] . "\""; ?>;
  4.     var direccion = *<?php echo "\"" . $rsTurismo['direccion'] . "\""; ?>;
  5.     var telefono *= *<?php echo "\"" . $rsTurismo['telefono'] . "\""; ?>;
  6.     var image * * = *<?php echo "\"" . $rsTurismo['icono']. "\""; *?>;
  7.     var id        =  <?php echo $rsTurismo['id']; ?>;
  8.    
  9.     //Vamos añadiendo el marcador
  10.     var marker * *= *new google.maps.Marker({
  11.         position: myLatLng,
  12.         draggable:false,
  13.         animation: google.maps.Animation.DROP,
  14.         map: map,
  15.         icon: image
  16.     }); //Cerramos el maker
  17.     var marcadores ='<b>Empresa:</b>' +empresa + '<br>' + '<b>Direcci&oacute;n:</b>' +direccion + '<br>' + '<b>Tel&eacute;fono:</b>'+telefono;
  18.     var infowindow = new google.maps.InfoWindow({
  19.         content : marcadores
  20.     });
  21.    
  22.     // Crear evento para mostrar la ventana al dar click
  23.     google.maps.event.addListener(marker, 'click', function(){
  24.         window.frames.resultado.location.href="mas_info.php?id=" + id;
  25.         });
  26. <?php } ?>

Saludos.
  #11 (permalink)  
Antiguo 24/04/2012, 14:33
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Pasar parametro por ID

Muchas gracias GatorV, pero me sigue pasando lo mismo.
Creo que hasta acá lo dejo por tiempo, trabajaré con los típicos InfoWindows que trae por defecto google maps, ahí no tengo problemas.

Muchas gracias por toda tu ayuda, por ayudarme a aclarar mis dudas.
Un saludo

Swab

Etiquetas: html, mysql, parametro, registro, tabla
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 14:14.