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 a todos. Me encantaria que alguien me ayude con este problema. Soy un tanto nuevo con esto del php, pero ya he hecho varios ...
  #1 (permalink)  
Antiguo 05/09/2006, 00:00
 
Fecha de Ingreso: septiembre-2006
Ubicación: Coronado, Costa Rica
Mensajes: 3
Antigüedad: 17 años, 7 meses
Puntos: 0
Problema con variable

Hola a todos. Me encantaria que alguien me ayude con este problema. Soy un tanto nuevo con esto del php, pero ya he hecho varios trabajillos con una base de datos y me ha quedado bien, y pues creo que ya hago algo, al menos algo interesante, aunque duro mucho en que todo pero al final me queda bien, voy adelante.

Estoy haciendo una aplicacion que contiene un calendario , cada dia del mes tiene una variable que es desplegada (por medio de una caja desplegable ). El usuario despues de visualizar el calendario con sus respectivos valores (leidos desde la bd) podra modificar los valores de cada dia. Cuando el chaval presiona "modificar dias" (submit), los elementos deben ser actualizados a la base de datos.

Cada dia fue asignado con el nombre de una variable de la siguiente forma:

dia 1: $fecha0;
dia 2: $fecha1;
dia 3: $fecha2;
dia 4: $fecha3;
...
...
...
dia 29: $fecha30;

Necesito saber, como puedo concatenar una variable a un texto para que al final me forme una nueva variable. O sea:

$y = 0;
$fechaLectura = $fecha.$y;
$y++;

Obviamente la parte anterior lo que estoy queriendo es que se forme la variable $fecha0; y que despues sea $fecha1; pero no se como concatenar esos valores para que me forme adecuadamente la variable.

Porque el resultado de la variable $fechaLectura es solamente el valor de $y y no el valor total de $fecha$y ($fecha0, $fecha1, $fecha2, ...)

En fin, no se si realmente me explique bien, pero ojala alguien me ayude a ver esto que creo que es simple, pero que me tiene pegado desde hace unos dias.

Lo he intentado haciendo cosas como:

$fechaLectura = $fecha.$y;

o

$fechaLectura = "$fecha".$y;

o

$fechaLectura = $fecha.[$y];

pero obviamente no funciona... gracias a quien se haya tomado el tiempo de leer esto, y si mi consulta es muy tonta pido disculpas, pero realmente, no veo como puedo salir adelante con esto.

gracias a todos,
  #2 (permalink)  
Antiguo 05/09/2006, 00:50
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
puedes guardar los datos en un array y asi no necesitas tantas variables como dias tiene el mes, no se si me entiendes.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 05/09/2006, 05:34
 
Fecha de Ingreso: septiembre-2006
Ubicación: España
Mensajes: 19
Antigüedad: 17 años, 7 meses
Puntos: 0
Zital tiene razón: deberías utilizar un array, y no un grupo de variables: $fecha[$i]. De todas formas, si persistes en tu actitud te recomiendo que utilices "eval", si te atreves con ello.

Un saludo,
  #4 (permalink)  
Antiguo 06/09/2006, 08:33
 
Fecha de Ingreso: septiembre-2006
Ubicación: Coronado, Costa Rica
Mensajes: 3
Antigüedad: 17 años, 7 meses
Puntos: 0
Gracias pero...

Hola a todos... gracias por sus respuestas, pero como mencione antes, soy nuevo en esto... les voy a facilitar mi propia ayuda He aqui el codigo que he realizado para ingresar todas esas variables nuevamente a la base de datos:

if ($actualizar && $ano && $mes && $habitacion && $diaMes) {

$y = 0;
$dias = array ("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31");

do {
$fechaIngreso = $ano."-".$mes."-".$dias[$y];
$fechaLectura = "$fecha"."$y";

$sql = "UPDATE CSdisp SET $habitacion = $fechaLectura WHERE fecha = $fechaIngreso";
$result = mysql_query($sql);

if ($result) {
echo $fechaIngreso." con la cantidad de habitaciones ".$fechaLectura." \n";
} else {
break;
echo "error al ingreso de los datos";
}
$y++;
} while ($diaMes = $y);

} else {
echo "Error de ingreso, contacte al proveedor del servicio, gracias! \n";
}

Yo creo que ando muy cerca... y como mi experiencia en esto no es muy amplia, me parece que al menos la idea de que concatenar esa variable con el resto de texto y que forme otra variable (segun yo ) era una opcion fiable, veo que tal vez ustedes tienen otras opciones que pueda ser que me faciliten la vida.

Lo que si no se es como esas variables que vienen de la otra ventana las puedo meter en un array para despues usarlas...

Me podrian guiar en ese sentido.

Muy agradecido a palcantara y a ZiTAL por sus comentarios.

A sus ordenes,
  #5 (permalink)  
Antiguo 06/09/2006, 12:19
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
;)

Código PHP:
...
$fechaLectura "$fecha"."$y";
... 
deberia ser:

Código PHP:
...
$fechaLectura $fecha.$y;
... 
Código PHP:
...
$result mysql_query($sql);
... 
deberia ser:
Código PHP:
...
$result mysql_query($sql,$link); //deberias tener una variable con la conexion BD
... 
y mejor si ordenas los corchetes que luego no sabes de cual es cual.

suerte!!!
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #6 (permalink)  
Antiguo 06/09/2006, 12:25
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
;)

bueno te lo he ordenado un poco y te he puesto la while en vez de el do-while:

Código PHP:
<?php
//...
if ($actualizar && $ano && $mes && $habitacion && $diaMes
 {
  
$y 0;
  
$dias = array ("01""02""03""04""05""06""07""08""09""10""11""12""13""14""15""16""17""18""19""20""21""22""23""24""25""26""27""28""29""30""31");

  while(
$diaMes==$y
   {
    
$fechaIngreso $ano."-".$mes."-".$dias[$y];
    
$fechaLectura $fecha.$y;

    
$sql "UPDATE CSdisp SET ".$habitacion." = ".$fechaLectura." WHERE fecha = ".$fechaIngreso;
    
$result mysql_query($sql,$link);

    if (
$result
     {
      echo 
$fechaIngreso." con la cantidad de habitaciones ".$fechaLectura;?><br /><?php
     

    else 
     {      
      echo 
"error al ingreso de los datos";?><br /><?php
      
break;
     }
    
$y++;
   } 
 } 
else 
 {
  echo 
"Error de ingreso, contacte al proveedor del servicio, gracias!";?><br /><?php
 
}
//...
?>
en las if's y while's en las comparaciones se usan == doble y no = simple ;)

en el sql la variable no la has puesto bien hay que concatenar. El mysql_query necesita una segunda variable para la conexion con la BD que en este caso seria $link

el break despues de la frase si no no tiene sentido, porque salta antes de leerlo

suerte!!!
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan

Última edición por ZiTAL; 06/09/2006 a las 12:32
  #7 (permalink)  
Antiguo 07/09/2006, 09:03
 
Fecha de Ingreso: septiembre-2006
Ubicación: Coronado, Costa Rica
Mensajes: 3
Antigüedad: 17 años, 7 meses
Puntos: 0
muchas gracias

Hola a todos:

Muchas gracias por tu ayuda.

En cuanto a la ordenada yo no se como ordenarlo por aca, porque le di copy y paste desde el dreamweaver y me salio asi, todo desordenado, gracias de todas formas. En cuanto a lo del while en lugar del do.. while me parece genial, creo que se ve mejor.

En cuanto a la conexion, si lo habia hecho... fue que no copie esa parte del codigo... yo antes de todo ese codigo que habia copiado tengo algo asi:

mysql_select_db ("sdhgroup", $link);

En fin, la conexion a la base de datos si se da... puesto que la informacion anteriormente se me despliega en el calendario.

Creo que en si, no me he dado a entender muy bien. Todo mi problema radica en una pequeña parte, especificamente, es la parte que yo siempre pongo en rojo. La de concatenar dos partes para que me formen una variable. :-p

Como habia mencionado antes yo traigo algunas variables llamadas $fecha0; $fecha1; etc. Ok, como veo que tu si sabes bastante de esto, por favor, dime... como hago para que esta linea de codigo:

$fechaLectura = $fecha.$y;

no se lea como si $fecha fuera una variable, porque no lo es, $y si es una variable, pero $fecha no. Lo que ocupo es que al desplegarse el valor de $y forme una variable que seria $fecha(y el valor de y); en ese caso seria como $fecha0, $fecha1; etc.

O sea, necesito que el valor de $y se despliegue ahi y que forme una variable que si existe, pero que existe hasta que se despliegue solamente el valor de y y no la parte de $fecha.

No se eso se daba hacer por medio de asociaciones o de parentesis, no se como, pero estoy seguro que con esa variable bien desplegada, y ahora con la idea tuya de usar un while en lugar de do while, pues se soluciona el asunto. Creo!

Como transformo: $fecha.$y en $fecha1 (esta variable si existe)

Gracias a los que me han ayudado, en especial a Zital, gracias!!

A sus ordenes

Chagar
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 02:39.