2 while um dentro do outro, é possível?

  • Autor Autor pa3lo022
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
P

pa3lo022

Gamma
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Hola a todos, espero que esten bien, les hago una consulta, tengo 2 query distintas, lo cual tendria que poner 2 while para que traiga todos los datos de la bd, pero mi duda es, se puede poner un while dentro de otro? (si se puede lo estoy haciendo mal :grumpy: )

Muchas gracias.

saludo
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
La respuesta es si, si se puede.

Lo que estás haciendo es anidar un ciclo dentro de otro.

Saludos.
 
Claro que se puede, es muy comun
 
gracias por sus respuestas. Me podrían poner un ejemplo básico porfa?
 
Claro que si pero que necesitas hacer , que código tienes?
 
Claro, se puede... solo ten cuenta que no hagas un ciclo infinito. Cuando termines el primer while anidado puedes utilizar break o hacer bien tus filtros.
 
Ejemplo súper básico:

$i=0;
$j=0;

while($i<=10){
while($j<=10){
echo $i . $j . '<br>';
$j++;
}
$i++;
}

Esto imprime pares de números del 0 al 10

0 0
0 1
0 2
...
1 0
...
2 0
...


Todo es cuestión de que condicional uses para que el ciclo se siga ejecutando, recuerda que hay 3 tipos de ciclos básicos:

Do{INSTRUCCIONES} While(CONDICION);

While(CONDICION){INSTRUCCIONES}

for(inicializar variables; Condicionales; Aumento o cambio de variables en cada ciclo){
Instrucciones;
}

Saludos.
 
Sí se puede, pero dependiendo de lo que quieras hacer, creo que es mejor hacer una "union" en la consulta, o utilizar inner join de mysql.
 
si se puede dependiendo de lo que quieres hacer por que posible mente puedes hacer eso mismo de una manera mas fácil seria bueno que explicaras lo que quieres realizar
 
Es posible solo fijate bien donde empieza y termina cada uno y que vas a hacer con los resultados obtenidos, hasta puedes poner mas ciclos no solo dos, ocupa tab para señalar bien cada ciclo
 
Buenas,
Como poder claro que se puede pero ten en cuenta los tiempos de carga. Será mucho mas elevado que si haces un inner join y unes las dos consultas y así solo necesitarás un while.

Saludos.
 
claro que se puede, sin ningún problema
 
más que seguro 🙂
 
son variables mi estimado, hacer un inner join puede ser un desperdicio en muchos casos, hay opciones como el left y right dependiendo de qué datos vas a extraer, union también puede ser un desperdicio.
Te doy un ejemplo básico: intenta medir la carga de millones de datos con un inner join vs hacer consultas parciales con índices optimizados vs crear vistas, te darás cuenta que ahora si importa el tiempo de carga y el inner join sería un suicidio completo porque el motor de la base de datos trabajaría hasta extenuarse si tienes pocos recursos de hardware vs microconsultas o la vista que te mencioné.
Calcular la complejidad computacional es muy bueno para todos los casos pero en scripts pequeños no se nota tanto esa carga que tu llamas.
Un saludo.
 
Voltar
Topo