Foros del Web » Programando para Internet » PHP »

Bucle-Loop dentro de una $variable - Dudas..

Estas en el tema de Bucle-Loop dentro de una $variable - Dudas.. en el foro de PHP en Foros del Web. Hola, necesito crear un LOOP FOR dentro de una variable, es posible? Código PHP: $almacenar  = for( $i = 0 ;  $i  <=  $cantidad ;  ...
  #1 (permalink)  
Antiguo 23/02/2006, 13:57
 
Fecha de Ingreso: mayo-2005
Mensajes: 148
Antigüedad: 18 años, 11 meses
Puntos: 0
Bucle-Loop dentro de una $variable - Dudas..

Hola, necesito crear un LOOP FOR dentro de una variable, es posible?

Código PHP:

$almacenar 
=

for(
$i=0$i <= $cantidad$i++)

{

$ord_[$i] . "\n";


Pero da error, lo cual me pregunto..

ES POSIBLE CREAR UN LOOP DENTRO DE UNA VARIABLE, no? alguna manera de hacerlo?

Por que la cantidad que se almacene dentro de la variable $almacenar depende de la otra variable $cantidad quie se haya enviado por un formulario.

No entrare tanto en los detalles, lo que quiero saber en si es si se puede o no crear un loop dentro de una variable.

Gracias y Saludos!
__________________
(8)Esta es la numero uno, que te sigue a todas partes,
siempre con sus estandartes,
y un grito de corazon, RACING CAMPEON
RACING CAMPEON, en el este y el oeste,
en el norte y en el sur, brillara blanca y celeste la academia RACING CLUB y la acade, y la acade... (8)
  #2 (permalink)  
Antiguo 23/02/2006, 14:03
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Y cual sería el resultado del código? digo, por que quizá hayan soluciones distintas a la que propones.
  #3 (permalink)  
Antiguo 23/02/2006, 14:03
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

De que se puede - se puede... si no se esta ejecutando es que no estas recibiendo el valor de tu forma de la manera correcta.
  #4 (permalink)  
Antiguo 23/02/2006, 14:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podrías entrar en "detalles" por qué creo que lo que estás haciendo se puede manejar de una forma más "lógica" .. Revisa esta FAQ por si estás haciendo eso:

http://www.forosdelweb.com/showthrea...710#post518710
(obsera el tratamiento tipo "array" que se hacen de los elementos del formulario .. sea cual sea su tipo .. da igual un checkbox que otro tipo ..)

Por lo demás lo que creo que intentas hacer es lo que se denomina "Variable variables" .. es decir, crear una nueva variable en función de otra. (Lo del "loop dentro de una variable" realmente no queda nada claro .. así con esa explicación ..)

Más info sobre "Variable variables":
http://www.php.net/manual/en/languag...s.variable.php

Un saludo,
  #5 (permalink)  
Antiguo 23/02/2006, 14:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 148
Antigüedad: 18 años, 11 meses
Puntos: 0
Los datos recojidos del formulario y ese rollo, esta hecho sin ningun problema.

El tema llega a la hora de crear un ORDEN con la variable $almacenar.
Los Datos de la variable $almacenar seran ALMACENADOS EN UN archivo.txt lo cual antes de crear todo el rollo de "fopen" creo esa variable.

La cantidad de casillas rellenadas por el usuario mediante el formulario las recoje la variable $cantidad, es decir, ejemplo: $cantidad = 5; ok? (5 casillas rellenadas)

Mas adelante..

No puedo insertar cada variable de cada casilla rellenada dentro de la variable $almacenar..

ejemplo:

Código PHP:

$almacenar 
$img_[1] . $img_[2
Si AUN no se cuales relleno ni cuantas. por eso.. es ahi donde quiero utilizar un "LOOP for" dentro de la variable $almacenar

Es decir que gracias a ese loop + la variable $cantidad, pues se almacenaria la cantidad exacta de datos por casilla rellenada dentro y asi continuar con el proceso de almacenarlo dentro del archivo.txt

Se me entiende o intento explicarme un poco mejor?

Saludos
__________________
(8)Esta es la numero uno, que te sigue a todas partes,
siempre con sus estandartes,
y un grito de corazon, RACING CAMPEON
RACING CAMPEON, en el este y el oeste,
en el norte y en el sur, brillara blanca y celeste la academia RACING CLUB y la acade, y la acade... (8)

Última edición por zuche; 23/02/2006 a las 14:18
  #6 (permalink)  
Antiguo 23/02/2006, 14:22
 
Fecha de Ingreso: enero-2006
Mensajes: 4
Antigüedad: 18 años, 3 meses
Puntos: 0
talvez deberias graficarlo

talvez eberias graficar la salida que deseas obtener pra que se te entienda mejor, por lo pronto si lo que pretendes es obtener es lo siguiente:
valor_1
valor_2
calor_n

prueba esto:
Código PHP:
$almacenar '';

for(
$i=0$i <= $cantidad$i++)

{
//supongo que deseas concatenar cadenas
$almacenar =$almacenar.$ord_[$i] . "\n";


  #7 (permalink)  
Antiguo 23/02/2006, 14:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No entendí mucho .. Tu usas definición de tus campos de tu formulario como un array .. o les das nombres tipo:

<input type="text" name="$x">

Donde $X es un contador ...

Si es así .. usa notación tipo array como en la FAQ que te dejé se comenta .. Te facilitará la vida hasta el punto de no tener ni que usar una variable que diga la cantidad de elementos que se generaron en el formulario .. tu simplemente "cuentas" los elementos de ese array (u arrays) que vas a recibir.

Un saludo,
  #8 (permalink)  
Antiguo 23/02/2006, 14:38
 
Fecha de Ingreso: mayo-2005
Mensajes: 148
Antigüedad: 18 años, 11 meses
Puntos: 0
Si mejor dicho.. debi resumirlo antes asi:

Dentro de la variable $almacenar iran los VALORES de distintos ELEMENTOS del array creado anteriormente al recojer los datos enviados por el Formulario.

Supongamos que el Usuario habia decidido crear 5 casillas de formulario.. es decir (que luego de enviar los datos, se crearon 5 elementos del array)

Se han creado 5 elementos de un Array:

$img_[1] = ...
$img_[2] = ...
$img_[3] = ...
$img_[4] = ...
$img_[5] = ...

Ok?

Pues luego yo quiero almacenar ello dentro de la variable

$almacenar = (pero claro.. yo no puedo insertar manualmente los Datos de los elementos del array creado.. si aun no se CUANTOS SE HAN CREADO.

Pero gracias a la $variable que recojio la CANTIDAD DE CASILLAS CREADAS por el usuario.. podre saber CUANTOS ELEMENTOS DE ARRAY SE HAN CREADO, es decir que gracias aun LOOP FOR podria.. insertar automaticamente los elementos del array dentro de la variable $almacenar.

---

Soy nuevo en PHP, empeze hace 1 semana y media, sigo un curso, etc. asique muy normal que me llegue a LIAR un poco con las cosas recien aprendidas xD
__________________
(8)Esta es la numero uno, que te sigue a todas partes,
siempre con sus estandartes,
y un grito de corazon, RACING CAMPEON
RACING CAMPEON, en el este y el oeste,
en el norte y en el sur, brillara blanca y celeste la academia RACING CLUB y la acade, y la acade... (8)
  #9 (permalink)  
Antiguo 23/02/2006, 14:46
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Pues ya maxiorrico te dio la solución:
Código PHP:
<?
// Lo que planteas es incorrecto:
$almacenar = for($i=0$i <= $cantidad$i++){
   
$ord_[$i] . "\n";
}

// Lo que debes hacer es esto:
$almacenar "";
for(
$i=0$i <= $cantidad$i++){
   
$almacenar $almacenar $ord_[$i] . "\n";
}
De esa manera, en cada pasada del bucle le estás agregando (concatenando) a $almacenar un nuevo valor del array.

Saludos
  #10 (permalink)  
Antiguo 23/02/2006, 14:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. como deben quedar en tu variable tipo string (cadena) ..

Separados por algún caracter? .. juntos? .. como?

Lo normal (si entendí bien) sería aplicar:

Código PHP:
<?
$almacenar 
implode(",",$img_);
Así te quedaran esos valores de ese array com un string (cadena) separados por algún caracter .. Esto le llaman "serializar" también.

Siendo "$img_" tu array .. (confunde mucho el _ con un [] .. realmente)

Un saludo,
  #11 (permalink)  
Antiguo 23/02/2006, 14:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jpinedo
Pues ya maxiorrico te dio la solución:
Código PHP:
<?
// Lo que planteas es incorrecto:
$almacenar = for($i=0$i <= $cantidad$i++){
   
$ord_[$i] . "\n";
}

// Lo que debes hacer es esto:
$almacenar "";
for(
$i=0$i <= $cantidad$i++){
   
$almacenar $almacenar $ord_[$i] . "\n";
}
De esa manera, en cada pasada del bucle le estás agregando (concatenando) a $almacenar un nuevo valor del array.

Saludos
Si es así .. se les pasó el . en =:

Código PHP:
<?
$almacenar 
.= $ord_[$i] . "\n";
OPS!, no ví el acumulador $almacenar = $almacenar.... Otra solución es la que dejo con el .=

Un saludo,
  #12 (permalink)  
Antiguo 23/02/2006, 14:50
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Lo que pone Cluster es la manera más sencilla de hacer lo que quieres.

En tu caso, al parecer, te basta con separarlos con un salto de línea "\n".
Código PHP:
<?
$almacenar 
implode("\n"$img_);
Yo te respondí a lo anterior con el fin de aclararte lo que preguntas (Bucle dentro de una variable).

Saludos
  #13 (permalink)  
Antiguo 23/02/2006, 14:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
(Yo realmente ya no sé lo que pretende hacer el amigo .. me perdí xDD .. bueno hay van muchas soluciones a ver si alguna le aprovecha).

Un saludo,
  #14 (permalink)  
Antiguo 23/02/2006, 15:12
 
Fecha de Ingreso: mayo-2005
Mensajes: 148
Antigüedad: 18 años, 11 meses
Puntos: 0
Muchisimas gracias a todos!

Ya me funciona como quiero xD

Sisi, ya me quedo claro la solucion que puso el maxiorrico y aclarado por los Demas!

Saludos y Gracias otra vez.
__________________
(8)Esta es la numero uno, que te sigue a todas partes,
siempre con sus estandartes,
y un grito de corazon, RACING CAMPEON
RACING CAMPEON, en el este y el oeste,
en el norte y en el sur, brillara blanca y celeste la academia RACING CLUB y la acade, y la acade... (8)
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:01.