[Solucionado] ciclo for arrojo combinaciones, ¿?para que se almacene en la BD

Iniciado por ~V, 14 Junio 2010, 20:24 PM

0 Miembros y 1 Visitante están viendo este tema.

~V

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

Falso Positivo

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.
Don't worry, be hacked....

~V

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.




Falso Positivo

Cita de: ~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 ?


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!
Don't worry, be hacked....

~V

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(0mysql_num_rows($result) - 1);
$link mysql_result($result$randval"Nombre");//colocas el nombre del campo donde se almaceno los datos
mysql_close();
echo 
$link;

}
?>





Falso Positivo

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.

Don't worry, be hacked....