Foros del Web » Programando para Internet » PHP »

Problema con blucle for

Estas en el tema de Problema con blucle for en el foro de PHP en Foros del Web. Resulta que yo tengo un 3 variables: $valor1= "hola"; $valor2 = ""; $valor3 = "adios"; Quiero crear 2 nuevas variables llamadas $nvalor1 y $nvalor2 sin ...
  #1 (permalink)  
Antiguo 08/08/2007, 06:52
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Problema con blucle for

Resulta que yo tengo un 3 variables:

$valor1= "hola";

$valor2 = "";

$valor3 = "adios";


Quiero crear 2 nuevas variables llamadas $nvalor1 y $nvalor2 sin valores en vacio.

Lo hago de esta forma:

Código PHP:
for($k=$k<=$k++) {

if(${
"valor".$k} != "") {

for(
$j=$j<=$j++) {

${
"nvalor".$j} = ${"valor".$k};

}

}

}
echo 
$nvalor1;
echo 
$nvalor2


De esta forma consigo que nvalor1 = hola pero nvalor2 en vez de ser adios, es otra vez hola y no se porque

un saludo
  #2 (permalink)  
Antiguo 08/08/2007, 08:22
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema con blucle for

Lo que veo que estás haciendo es:

Cuando k = 2, se entra en el if.

Por lo tanto se entra también en el for.

dentro del for, se da el valor "hola" a nvalor1 y nvalor2

Eso es lo que hace tu código, no hay errores.

Lo que querés es que las variables vacías no las tome, eso se hace de otra forma:

Código PHP:
$i 1;
$j 1;
while( isset(${
'valor'.$i}) )
{
  if (!empty(${
'valor'.$i}))
  {
    ${
'nvalor'.$j} = ${'valor'.$i};
    
$j++;
  }

  
$i++;
}
echo 
$nvalor1
echo 
$nvalor2
Con esto se recorren todas las $valor, asignando solo cuando la variable no está vacía, e incrementando $j (el índice de la "siguiente" $nvalor) si se hace una asignación.


Saludos.

Última edición por AlvaroG; 08/08/2007 a las 08:27
  #3 (permalink)  
Antiguo 08/08/2007, 10:51
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Re: Problema con blucle for

Muchas gracias voy a probar a ver que tal funciona :)

Última edición por escan_0; 08/08/2007 a las 11:01
  #4 (permalink)  
Antiguo 08/08/2007, 11:14
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Re: Problema con blucle for

Pues acabo de probar y es raro lo que pasa, con nuestro ejemplo funciona muy bien pero a lo hora de aplicarlo a mi script solo me imprime "hola" en $valor1 pero en $valor2 me lo imprime en blanco:

Código PHP:
include("config.php");


for(
$i=$i<=$i++) {



$result mysql_query("SELECT nombre FROM categoria where id=$i");
$row mysql_fetch_array($resultMYSQL_NUM);

$dato0=$row[0];




if(
$i != 2) {

${
"valor".$i} = $dato0;

}

}

//Hasta aqui $valor1="hola, $valor2="", $valor3="adios"


$i 1
$j 1
while( isset(${
'valor'.$i}) ) 

  if (!empty(${
'valor'.$i})) 
  { 
    ${
'nvalor'.$j} = ${'valor'.$i}; 
    
$j++; 
  } 

  
$i++; 

echo 
$nvalor1;  
echo 
$nvalor2;

//hasta aqui DEBERIA $nvalor1="hola", $nvalor2="adios. Pero hace esto: $nvalor1="hola", $nvalor2="" 


Asi trabaja mi script:

Tengo una tabla llamada categoria, dentro de esa tabla hay unos datos que se identifican mediante un id:

1 hola
2 Perro
3 adios


resulta que quiero borrar el dato central el que tiene el id=2 pero si lo borro se me queda asi:

1 hola
3 adios

y yo quiero unas nuevas variables que me las organicen para despues guardarlas de esta forma:

1 hola
2 adios.


El codigo que he pegado deberia de realizar esa funcion pero ocurre el problema que comento arriba

un saludo

Última edición por escan_0; 08/08/2007 a las 11:19
  #5 (permalink)  
Antiguo 08/08/2007, 12:18
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Re: Problema con blucle for

Al final todo solucionado, añadi un else al if y perfecto, muchas gracas de nuevo :)

} else {


${"valor".$i} = "";

}

}
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 10:56.