Foros del Web » Programando para Internet » PHP »

Problema con variable

Estas en el tema de Problema con variable en el foro de PHP en Foros del Web. Hola gente como estan Miren tengo un problema con el uso de una variable que se llena dentro de un while Código PHP: while( $resultado  ...
  #1 (permalink)  
Antiguo 29/08/2011, 12:13
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Problema con variable

Hola gente como estan

Miren tengo un problema con el uso de una variable que se llena dentro de un while

Código PHP:
while($resultado mysql_fetch_array($consulta)){
echo 
$nombre=$resultado['nombre'];

Hasta ahi todo bien la variable nombre tiene valor e imprimir pues esta dentro del while.

Mi necesidad es usar ese valor en otro lado eso implica estar fuera del while. ya intente metiendo el valor a un session pero no me la muestra al momento si no me la muestra despues de muchos F5.


Saludos
  #2 (permalink)  
Antiguo 29/08/2011, 12:28
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Problema con variable

Hola que tal.

al momento de declarar tu variable es local en el while, ¿Por qué no la declaras global?

ejemplo

Código PHP:
Ver original
  1. $nombre = "";
  2.  
  3. while($resultado = mysql_fetch_array($consulta)){
  4.        $nombre=$resultado['nombre'];
  5. }

y de esa forma vas a poder llamar su valor en otra parte de tu página.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 29/08/2011, 12:35
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Respuesta: Problema con variable

Hola compa

podrias tambien guardar ese valor en un arreglo y asi envias el arreglo ya sea en una sesion o con get

Código PHP:
Ver original
  1. $arreglo_final = array();
  2. while($resultado = mysql_fetch_array($consulta)){
  3. echo $nombre=$resultado['nombre'];
  4.                   $arreglo = array('nombre' => $resultado['nombre']);
  5.                   array_push($arreglo_final,$arreglo);
  6. }
  7.  
  8. $_SESSION['datos'] = $arreglo_final;
  #4 (permalink)  
Antiguo 29/08/2011, 12:36
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: Problema con variable

Codigo lol.php aqui se crea la variable das F5 y no se borra por que se vuelve a crear
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. $nombres = array('a','b','c','d','e');
  5. $i = 1;
  6. while( list($a,$b) = each($nombres))
  7. {
  8.  
  9. $_SESSION['XD'][$i] = $b;
  10. $i++;
  11.  
  12. }
  13. echo $_SESSION['XD'][2];
  14.  
  15.  
  16. ?>

codigo lol1.php pasas a esta pagina y la variable sigue
Código PHP:
Ver original
  1. <?php
  2. echo $_SESSION['XD'][2];
  3. ?>
  #5 (permalink)  
Antiguo 29/08/2011, 12:42
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Problema con variable

Si solo necesitas guardar el campo de nombre no veo necesario que sea multidimencional, guardándolo en un array normal te alcanzaría.

Código PHP:
$nombres = array();
while(
$resultado mysql_fetch_array($consulta)) {
    echo 
$resultado['nombre'];
    
array_push($nombres$resultado['nombre'] );

y para usarlo solo te bastaría recorrerlo con un foreach

Código PHP:
foreach($nombres as $nombre) {
    echo 
$nombre;

Espero que te sea útil, saludos!
  #6 (permalink)  
Antiguo 29/08/2011, 12:45
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con variable

Ya que insisten en usar array_push les coloco esta cita:

Cita:
Note: Si se utiliza array_push() para añadir un solo elemento en el array, es mejor utilizar $array[] = ya que de esta forma no existe la sobrecarga de llamar a una función.
Es mejor hacer $nombres[] = $resultado['nombre'];
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 29/08/2011, 12:46
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con variable

Hola skiper0125 muchas gracias por la ayuda pero no me funciona será porque donde hago el while es una página agregada con include.

Saludos
  #8 (permalink)  
Antiguo 29/08/2011, 12:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con variable

arsenal, probablemente los problemas que tienes son por no saber utilizar las sesiones de php.

Pues todos los ejemplos si funcionan, realmente has de estar haciendo algo que no podemos adivinar lo cual nos impide conocer las causas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 29/08/2011, 13:02
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con variable

Solo quiero imprimir el valor de una variable en otro lado de mi página este valor que quiero lo saco de una bd con while:

Código PHP:
while($resultado mysql_fetch_array($consulta)){
       
$nombre=$resultado['nombre'];


El valor que tiene $nombre solo me lo muestra si esta dentro del while se me ocurrio meter ese valor a un session para poder imprimirlo fuera del while y si me lo hace pero tarda demasiado en asignarle ese valor a la session y asi no me sirve.

La estructura de mi web es con includes index.php?area=ejemplo

Ya probare las demas soluciones de los compañeros estoy tratando de enterlos

Saludos
  #10 (permalink)  
Antiguo 29/08/2011, 13:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con variable

Entonces tu problema se le conoce como contexto, obviamente no puedes tener una variable de contexto local en alguna otra parte de tu código.

Mucho menos si la asignación de la variable se hace después de donde la utilizas, ¿podrías describir el escenario de tu aplicación para conocer su contexto?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 29/08/2011, 13:15
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Problema con variable

Cita:
Iniciado por arsenal Ver Mensaje
Solo quiero imprimir el valor de una variable en otro lado de mi página este valor que quiero lo saco de una bd con while:

Código PHP:
while($resultado mysql_fetch_array($consulta)){
       
$nombre=$resultado['nombre'];

Seguramente tu consulta trae mas de una fila y estas pisando el resultado en cada vuelta del while. Por eso es que tarda.
Podrías modificar la consulta, o bien, cambiar el while por un if

Código PHP:
if($resultado mysql_fetch_array($consulta)){
       
$_SESSION['nombre'] = $resultado['nombre'];


Última edición por h2swider; 29/08/2011 a las 13:21 Razón: quote mal cerrado
  #12 (permalink)  
Antiguo 29/08/2011, 13:37
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con variable

Cita:
Iniciado por pateketrueke Ver Mensaje
Entonces tu problema se le conoce como contexto, obviamente no puedes tener una variable de contexto local en alguna otra parte de tu código.

Mucho menos si la asignación de la variable se hace después de donde la utilizas, ¿podrías describir el escenario de tu aplicación para conocer su contexto?
Claro que si,
El valor que necesito lo quiero imprimir en el TITLE

La estructura de mi página es
Código HTML:
Ver original
  1. <div id="contenido"></div>

El DIV "contenido" tiene un include para ir llamando las secciones index.php?area=ejemplo

En una de esas secciones hago consultas a la bd a diferentes tablas segun la sección pero todas estas tablan tiene un campo en comun que es titulo y que es el que quiero mostrar en la etiqueta TITLE cada vez que entren a esa sección.

Edit h2swider ya miro a ver que tal me va estoy probando de todo

Saludos
  #13 (permalink)  
Antiguo 30/08/2011, 06:49
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Problema con variable

¿Te funciono?
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #14 (permalink)  
Antiguo 30/08/2011, 10:37
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con variable

Primero que nada muchas gracias h2swider por tu interes No no me ha funcionado nada, es eso que no puedo usar el valor porque esta fuera del while.

He tratado de guardar el valor en una session pero tarda en hacer los cambios en la session, o sea si entro primero a sección 1 se guarda el título de la sección despues entro a sección 2 y me sigue saliendo el nombre de seccón 1 ya hasta despues de unos segundos sale el nombre de la sección 2.

Alguna idea para evitar esto?

Saludos
  #15 (permalink)  
Antiguo 30/08/2011, 10:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con variable

arsenal, es que al parecer no entiendes lo que quiere decir contexto.

Código PHP:
echo "<title>$titulo</title>";

// mas código

while (/* ... */)
{
  
// ¿aquí defines el titulo?

Recuerda que el código se lee de arriba hacía abajo, si intentas leer una variable que asignas después tienes serios problemas conceptuales.

¿Exactamente que parte no entiendes?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 30/08/2011, 18:00
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con variable

dale pateketrueke todo entendido, lo siento por mis problemas conceptuales.


Saludos
  #17 (permalink)  
Antiguo 30/08/2011, 18:20
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con variable

Si el caso es para el titulo, podes establecer el titulo con javascript, posteriormente a la obtención del $nombre
Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>titulo</title>
  6. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  7. </head>
  8. <body>
  9. <?php
  10. $nombre = "nuevo titulo";
  11. ?>
  12.  
  13.  
  14. <script type="text/javascript">
  15. document.title = '<?php echo $nombre; ?>';
  16. </script>
  17. </body>
  18. </html>

saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #18 (permalink)  
Antiguo 30/08/2011, 18:37
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con variable

Muchas gracias emprear :) si funciona pero solo para lado del cliente y lo que quiero lograr es para seo o sea en el server.

Saludos
  #19 (permalink)  
Antiguo 30/08/2011, 18:39
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con variable

Entonces no te queda otra opcion que efectuar tu consulta antes del header, aunque solo sea para ese valor

saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #20 (permalink)  
Antiguo 30/08/2011, 19:01
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con variable

Si pues emprear me va tocar hacer otra consulta solo para el título no hay más.

Saludos y gracias a todos :)

Etiquetas: mysql, 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 20:58.