Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ~V en 14 Junio 2010, 20:24 pm



Título: [Solucionado] ciclo for arrojo combinaciones, ¿?para que se almacene en la BD
Publicado por: ~V en 14 Junio 2010, 20:24 pm
Buenas,

Bueno, Tengo que arrojar todas las combinaciones posibles sin repetir. segun un conjuto X de numeros.

Yo quise hacerlo estatico, con 10 numeros -> {0,1,2,3,4,5,6,7,8,9}

sacar todas las combinaciones posibles sin repetir y de menor a mayor.

Osea la forma para lograrlo es a travez de un ciclo for

 <?


for($a=0;$a<=7;$a++)
{
  for($b=$a+1;$b<=8;$b++)
  {
    for($c=$b+1;$c<=9;$c++)
    {
      
             print("$a-$b-$c<br>\n");
}
}

}?>


--> Bien con ello arrojo todas las combinaciones posibles y en orden MENOR a MAYOR.
 ( es solo cosa de agregarle un printf ("$a -$b-$c"); )


AHORA, como hago para que se me guarden todas las combinaciones arrojadas (120) , en la base de datos ?



PD: tambien lo podria hacer mas Didactico, que el usuario me diga las combinaciones totales .. segun el string que el me diga, pero priemro hacerlo con este .


gracias...


Esto porque , pense hacerlo estatico total, preguntando en este tema, pero me causa mucho comflicot de esperas, y hay que actualizar a ratos, y con metodo de condicionales tengo que actualizar mucho porque se repiten "121",

gracias por  leer



http://foro.elhacker.net/php/asesoria_iquest_quiero_que_me_arroje_3_numeros_aleatorios_pero-t296442.0.html (http://foro.elhacker.net/php/asesoria_iquest_quiero_que_me_arroje_3_numeros_aleatorios_pero-t296442.0.html)


Título: Re: Con ciclo for arrojo combinaciones, como hago para que se almacene en la BD
Publicado por: Falso Positivo en 14 Junio 2010, 22:34 pm
Hola,

El proceso sería mas o menos el siguiente:

1. Reemplace  print("$a-$b-$c<br>\n"); por $resultado = "$a-$b-$c<br>\n";

2. Busque en google como crear una base de datos y la creas.

3. Busque en google como crear una tabla y la creas.

4. Busque en google como crear un campo y lo creas.

5. Busque en google como establecer una conexión a la base de datos creada en 1. y lo codificas

6. Busque en google como hacer un INSERT y lo codificas, luego la variable a guardar es $resultado.

7. Busque en google como hacer un SELECT para traerte la información almacenada y lo codificas.

8. Haces un echo del resultado obtenido de la consulta del SELECT y te debería mostrar lo mismo que te está mostrando con el  print("$a-$b-$c<br>\n");


Saludos.


Título: Re: Con ciclo for arrojo combinaciones, como hago para que se almacene en la BD
Publicado por: ~V en 15 Junio 2010, 04:09 am
EDITO:

Eh, una duda,

si yo pruebo remplazando el "printf", por --> $resultado

pues el ciclo for " MUERE" ,porque esto ?


ya que decidi probar y mostrar en pantalla con  echo.

y solo me muestra  los valores ultimos que estan por defecto --> 7 -8-9




for($a=0;$a<=7;$a++)
{
  for($b=$a+1;$b<=8;$b++)
  {
    for($c=$b+1;$c<=9;$c++)
    {
       
             $resultado =  ("$a-$b-$c<br>\n");
}
}

}

echo "$resultado";


Entonces al momento de ingresar a la Base de datos, , solo me ingresa 1 fila,  con el 7-8-9.





Título: Re: Con ciclo for arrojo combinaciones, como hago para que se almacene en la BD
Publicado por: Falso Positivo en 16 Junio 2010, 06:58 am
EDITO:

Eh, una duda,

si yo pruebo remplazando el "printf", por --> $resultado

pues el ciclo for " MUERE" ,porque esto ?


No muere, error mío :P

debe ser así: $resultado .=  $a-$b-$c."<br />";

Debes observar el punto antes del signo igual, con ello indicas que concatenas lo que tenía almacenado la variable $resultado con  $a-$b-$c."<br />";

Saludos!


Título: Re: Con ciclo for arrojo combinaciones, como hago para que se almacene en la BD
Publicado por: ~V en 16 Junio 2010, 21:27 pm
Ahh, mira Haciendo eso que me dices, claro me las ingresa, pero en una sola fila.

ID
--- |-------|-------|-
160| 0-1-2
       0-1-3
       0-1-4
       etc.....

Entonces lo que hice fue, Incluir el

mysql_query("insert into prueba (Nombre) values ('$resultado')",$link);  
dentro del ciclo for, considerando el echo de ir guardando cada registro, y a la vez ir almacenando.

Y en ese caso, cumple con lo que se queria.


EDITO

Listo ahora ya me arroja las combinaciones aleatorias.

gracias

les dejare el codigo, quizás mas de alguien lo necesite.


<?php
// pretendemos mostrar una sola combinación que ya esta ingresada.

include("conex.php");
   $link=Conectarse();
$sql = "SELECT * FROM prueba";  //colocasla base de datos
if ($result = mysql_query($sql)) {
$randval = rand(0, mysql_num_rows($result) - 1);
$link = mysql_result($result, $randval, "Nombre");//colocas el nombre del campo donde se almaceno los datos
mysql_close();
echo $link;

}
?>



 


Título: Re: [Solucionado] ciclo for arrojo combinaciones, ¿?para que se almacene en la BD
Publicado por: Falso Positivo en 20 Junio 2010, 18:48 pm
Buenas,

Claro, pensé que querías todo en un solo campo, y es correcta la solución, si necesitabas los resultados en campos distintos el INSERT puede ir dentro del for anidado.

Me alegro que te sirva mi colaboración, mucha suerte.