Foros del Web » Programando para Internet » PHP »

Ayuda con bucles!

Estas en el tema de Ayuda con bucles! en el foro de PHP en Foros del Web. Hola, buenos dias. Mi nombre es Damian y estoy empezando con php. Hace un par de meses diseñe mis primeros scripts basicos, y ahora, ya ...
  #1 (permalink)  
Antiguo 14/04/2008, 01:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 22
Antigüedad: 16 años, 2 meses
Puntos: 0
Ayuda con bucles!

Hola, buenos dias. Mi nombre es Damian y estoy empezando con php.
Hace un par de meses diseñe mis primeros scripts basicos, y ahora, ya que me instrui un poco mas estoy tratando de re-programar dichos scripts ya que habia usado muchisimo codigo en vez de otras alternativas.

Me encuentro con un problema al momento de usar bucles. Especificamente, necesitaria si alguien puede orientarme un poco.

Para dar un ejemplo claro y rapido:

Este es el codigo original que actualmente tengo:


Código PHP:
$numero1 rand(1000000000,99999999999999);
$numero2 rand(1000000000,99999999999999);
$numero3 rand(10000,999999999); 
y estoy claro, continua hasta el $numero75 ya que necesito 75 numeros aleatorios distintos.

Hasta donde tengo entendido, puedo hacer un bucle, que ejecute ese codigo 25 veces verdad? quedaria algo asi:

Código PHP:
<?php
   $i
=0;
   while (
$i<25)
   {
     
$numero1 rand(1000000000,99999999999999);
     
$numero2 rand(1000000000,99999999999999);
     
$numero3 rand(10000,999999999);

      echo 
"El numero es:"$numero1,"--"$numero2,"--"$numero3,"<br>";
      
$i++;
   }
?>
Esto basicamente me imprime en pantalla 25 renglones, con tres numeros aleatorios cada una, separadas por "--". Hasta aca perfecto, pero el tema es que los datos de cada variable llamada $numero1, $numero2 y $numero3, no quiero usarlas en ese momento, y las voy a necesitar luego.
Yo lo que no se es como llamarlas, porque osea, si llamo $numero1 luego de ejecutar el script, me va a dar el valor final de $numero1, el que se creo en el bucle 25.

La pregunta es, como puedo hacer para que se guarde el contenido de cada variable numero, en una nueva variable consecutiva, es decir:

Bucle 1:
$numero1 genera: $var1
$numero2 genera: $var2
$numero3 genera: $var3
Bucle 2:
$numero1 genera: $var4
$numero2 genera: $var5
$numero3 genera: $var6
y asi hasta el Bucle 25 / $var75

Hay alguna manera de hacer eso? me volvi loco buscando la manera de hacerlo, probe con todos los bucles, y mas formas que encontre en Google, pero no logro hacerlo.

Lei por ahi que poniendo por ejemplo:

Código PHP:
echo $numero1[0];
echo 
$numero1[1];
echo 
$numero1[2];
echo 
$numero1[3];
echo 
$numero1[4];
echo 
$numero1[5];
echo 
$numero1[6]; 
Eso deberia imprimirme el numero aleatorio del bucle numero 1 al 6. Osea que si necesitaria llamar al numero del bucle 8, podria hacerlo con la variable: $numero1[7] pero la verdad, a mi no me devolvio ningun valor.

Ojala alguno pueda ayudarme.
Saludos
Damian
  #2 (permalink)  
Antiguo 14/04/2008, 01:27
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Re: Ayuda con bucles!

Porque te falto modificar el bucle para meter los valores en arrays:
Código PHP:
<?php
   $i
=0;
   while (
$i<25)
   {
     
$numero1[] = rand(1000000000,99999999999999);
     
$numero2[] = rand(1000000000,99999999999999);
     
$numero3[] = rand(10000,999999999);

      echo 
"El numero es:"$numero1[$i],"--"$numero2[$i],"--"$numero3[$i],"<br>";
      
$i++;
   }
?>
  #3 (permalink)  
Antiguo 14/04/2008, 01:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Ayuda con bucles!

obvio, yo no usaria $numero1...255!!!!! seria muy burdo..

mira con un bucle asi..

Código PHP:

$arr 
= array();
$tmp = array();

while(
count($arr) < 75)
{
  
$n rand();
  if (!
array_key_exists($n,$tmp))
  {
    
$tmp[$n] = TRUE// sercioremonos de CERO copias...
    
$arr[] = $n// numero, valido...
  
}


ahora ya tenemos los numeros al azar dentro de $arr
si o no?
  #4 (permalink)  
Antiguo 14/04/2008, 07:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 22
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con bucles!

Hola Gente, muchisimas gracias, logre conseguir todas las variables de esa forma y estan andando de 10!

Ahora, trate de adaptar el mismo codigo a una consulta, pero donde obtengo resultados desde base de datos, y no aleatorios. El codigo es este:

Cita:
$desde1 = $HTTP_GET_VARS["desde"];
$hasta1 = $HTTP_GET_VARS["hasta"];

$datos = mysql_query("select id,id2 from base WHERE id >= $desde1 AND id <= $hasta1 AND estado = 'ACTIVO'");
while ($fila = mysql_fetch_array($datos)) {
echo "El email de ", $fila['id']." es ---->".$fila['id2'],"<br>";
}
La cuestion es que aca no se donde puedo meter los [] para llamar al numero de bucle se entiende?
Ese codigo sinceramente me lo dieron. Obtengo los resultados tal cual los requiero, es decir me muestra el ID e ID2 de todos los registros con Estado ACTIVO y me los imprime en pantalla. El tema es que no se como hacer para luego meter en variable el resultado de fila de determiado numero de bucle.

Intente modificar los codigos anteriores y adaptarlos a este, pero nada jaja.
Ojala puedan ayudarme nuevamente, son unos capos.
Saludos y gracias.
Damian
  #5 (permalink)  
Antiguo 14/04/2008, 10:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Ayuda con bucles!

haber haber, te refieres al numero de bucle...
al arreglo anterior ke contiene los numeros a azar generados, no?

y supongo ke kieres ke desde estos "numeros" los sake con el SQL.... eje?
puedes hacer con un IN.... osea WHERE id IN ($pasta)

donde $pasta, para mas rapido le das join(',',$arr)
((donde $arr es el arreglo kon los numeros al azar))

un Ej.

Select id,id2 FROM base WHERE id IN(1,3,5,7,9,619,112,33)
((si me ekivoko, es ke no se mucho mySQL))

pero puede ser...
  #6 (permalink)  
Antiguo 14/04/2008, 15:48
 
Fecha de Ingreso: febrero-2008
Mensajes: 22
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con bucles!

Hola! Gracias por todas las respuestas.
Finalmente pude hacer lo que necesitaba de la siguiente manera:

Código PHP:
<?php

$desde1 
$HTTP_GET_VARS["desde"]; 
$hasta1 $HTTP_GET_VARS["hasta"]; 

$i=$desde1;
while (
$i<=$hasta1){
$ida = ("SELECT `id`,`id2` FROM base WHERE `id` = $i AND `estado` = 'ACTIVO'");
$idb MYSQL_QUERY($ida) or die(mysql_error());
$idc[$i] = mysql_fetch_array($idb);
    
echo 
"El ID 1 es"$idc[$i]['id']." y el 2 "$idc[$i]['id2']."<br>";
$i++;


?>
El problema principal quedo solucionado, ya que luego si pongo:

Código PHP:
echo "El ID 1 es"$idc[$i]['id']." y el 2 "$idc[$i]['id2']."<br>"
Reemplazando $i por un numero que va entre los obtenidos de la variable en la url $desde y $hasta (normalmente 1 y 200) obtengo lo que quiero, asi que hasta aqui todo perfecto, y agradezco los comentarios.

Pero, me encuentro con el problema, de que no puedo hacer que estos valores dentro de otra variable sean incluidos en la base de datos, es decir, no logro encontrar la manera de "llamar" la variable dentro de otra.

Ejemplo de Lo que quiero Hacer:

Código PHP:
$variablefinal "
El ID resultado es $idc[10]['id']
El ID resultado es $idc[20]['id']
El ID resultado es $idc[110]['id']
El ID resultado es $idc[11]['id']
El ID resultado es $idc[39]['id']
El ID resultado es $idc[45]['id']
El ID resultado es $idc[70]['id']
El ID resultado es $idc[156]['id']"

Esto, antes de hacer el bucle me funcionaba perfectamente, ahora no logro hacerlo, cuando intento meterlo en la sql obtengo lo siguiente:

Código PHP:
$query  = ("INSERT INTO ids VALUES ('$variablefinal')") ;
$result mysql_query($query); 
Obtengo una fila en la sql con el siguiente texto:


Código PHP:
El ID resultado es Array['id']
El ID resultado es Array['id']
El ID resultado es Array['id']
El ID resultado es Array['id']
El ID resultado es Array['id']
El ID resultado es Array['id']
El ID resultado es Array['id']
El ID resultado es Array['id'
Me estoy volviendo loco, aparentemente por lo que lei es por un tema de "" o '' pero no logro hacer que incluya el valor en la sql y no el array.

Cuando imprimo el codigo en pantalla veo correctamente la data, y debajo en el codigo esta la instruccion, osea, genera el bucle y le pido, primero que lo imprima (y lo hace bien) y luego que lo inserte en una base, cosa que hace mal.

Si alguno me puede ayudar se lo voy a agradecer.
Muchas gracias.
Damian
  #7 (permalink)  
Antiguo 14/04/2008, 16:11
 
Fecha de Ingreso: febrero-2008
Mensajes: 22
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con bucles!

Agrego:

Esa tecnica no me funciona solo con las variables obtenidas como resultado del bucle.
Porque si agrego una variable de una consulta normal, me pone el resultado, no el array.

tal vez estoy escribiendo algo mal.

Damian
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 01:18.