Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

willbonde

For dentro de For

Recommended Posts

Boa tarde!

Não sou muito bom em programação, porem estou com o seguinte cenário. Preciso fazer inserções num banco, onde o valor de dois campos é o resultado de dois "FOR". Segue exemplo.

// Crio a primeira sequencia de numeros

for($i = 1; $i <= 50; $i++)

{

// Aqui crio a segunda sequencia de numeros

for($j = 1; $j <= 5; $j++)

{

$h = 1;

// Aqui eu gostaria que repetisse os numeros gerados pelo segundo FOR, por 10 vezes

while($h <= 10)

{

$query = mysql_query("INSERT INTO tabela (campo1, campo2)VALUES('$i', '$j')");

$h++;

}

}

}

Sei que a logica esta errada, porem preciso que os registros sejam inseridos repetindo somente o segundo FOR, ou seja, somente da variavel $j.

Ficaria algo assim.

Registro1:

Campo1= 1 Campo2= 1

Registro2:

Campo1= 2 Campo2= 1

Registro3:

Campo1= 3 Campo2= 1 até atingir 10 repetições

Registro4:

Campo1= 4 Campo2= 2

Registro5:

Campo1= 5 Campo2= 2

Registro6:

Campo1= 6 Campo2= 2 ate atingiar 10 repetições

Desculpa se não me expressei bem e pelo tamanho do POST, agradeço se alguem conseguir me ajudar. Obrigado!

Registr

o1:

Campo1= 1 Campo2= 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está com um loop a mais (pelo menos do que você está utilizando) e está inserindo os valores invertidos.

Remova o while, mude o for para <= 10 e inverta os valores inseridos. Pelo visto, você quer que o primeiro valor mude enquanto o segundo não (apenas repita).

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por marsolim
      Olá a todos. Venho com um probleminha para o qual não encontrei resposta. Talvez, eu não tenha sabido os termos certos para pesquisar. É o seguinte... estou tentando incluir, em uma lista array, índices com valores montados em uma variável a partir de outra array e não estou a conseguir. Atualmente, meu código é o seguinte...
      var ids = {     "joby": "track 01",     "dobby": "track 02",     "medz": "track 03",     "decks": "track 04,     "tecks": "track 05",     "assud": "track 06",     "mand": "track 07",     "daly": "track 08", }; var lstIds = []; for(i in ids){         lstIds[i] =  {         dock: ids[i],         adb: 0,         mdc: 0,         bah: 0,         tek: 0,         dep: 0,         tos: 0     }; }  
      Até aqui ok. É o que tenho no momento. O que estou querendo fazer é colocar, no lugar das linhas de adb: 0 até dep: 0, outra array que criei com esses índices, porque pode ser que eu precise adicionar mais valores e eu quero fazer isso na array nova porque vou usar ela em vários lugares e eu teria que alterar em todos se não fizer essa modificação. Fazendo ela, eu alteraria apenas nela mesmo. Então, agora, com a array nova, seria algo assim:
      var ids = {     "joby": "track 01",     "dobby": "track 01",     "medz": "track 01",     "decks": "track 01",     "tecks": "track 01",     "assud": "track 01",     "mand": "track 01",     "daly": "track 01", }; var juds = ["adb", "mdc", "bah", "tek", "dep"]; //lista nova com os valores var lstIds = []; for(i in ids){         lstIds[i] =  {         dock: ids[i],         adb: 0,         mdc: 0,         bah: 0,         tek: 0,         dep: 0,         tos: 0     }; }  
      O que eu preciso é incluir os valores de juds em lstIds. Da forma que está, não consigo fazer um for dentro do outro for para pegar esses dados e não consigo, também, criar ele fora e inserir com variável, tipo:
      var fJuds = ""; for(i in juds){     fJuds += juds[i] + ": 0,"; } for(i in ids){         lstIds[i] =  {         dock: ids[i],         fJuds // Aqui eu incluiria a variável no lugar das linhas...         tos: 0     }; }  
      Bem, o que eu queria saber mesmo é como eu poderia inserir uma variável no meio duma lista desse tipo... se é possível.
       
      Agradeço pela atenção...
    • Por marcossantana10
      Faço uma consulta no banco para buscar uma lista de horários, depois preciso comparar esse resultado com um array só de horários que eu possuo. Utilizei o código abaixo pra isso:
       
      //dados do array $h_indisponiveis separados por _ (ilustrativo) 13:20:00_13:40:00_14:00:00_14:20:00_18:40:00_19:00:00_21:20:00 $sql = "MINHA CONSULTA"; $sql=$pdo->query($sql); if ($sql->rowCount() > 0) { $result = array('error'=>false, 'data' => array()); foreach ($sql as $row) { $horario['id'] = $row['id']; $horario['hora'] = $row['hora']; $horario['tempo'] = $row['tempo']; for($i=0; $i<$sizeArray; $i++){ if ($h_indisponiveis[$i] == $row['hora']){ $horario['disponivel'] = 'n'; } else { $horario['disponivel'] = 's'; } } array_push($result['data'], $horario); } echo json_encode($result); }  
      O problema é que ele não está retornando todas as correspondências entre o objeto da consulta e o array, apenas a última. Ao invés de marcar 6 resultados como "disponivel = n", ele só marca um. Como posso corrigir
       

    • Por Diego-SLP
      Boa tarde,
       
      Preciso atualizar um registro o qual já possui um valor na coluna QUANTIDADE, agora atualizarei a coluna VALOR UNITARIO e gostaria que fosse feita a multiplicação QUANTIDADE * VALOR UNITARIO.
       
      Como consigo fazer essa consulta do ID, pegar a QUANTIDADE e multiplicar pelo VALOR UNITARIO de cada linha ? vou atualizar lotes, e nao só um registro.
       
      Imagino que com o FOR, mas não consigo montar sua estrutura de repetição.
    • Por Yuji Tako
      Meu professor passou uma lista de exercício para a turma e no meio disso tinha uma questão
      cujo o enunciado é o seguinte:
      eu pensei nas formas de conseguir fazer esse programa e pensei nessa forma
      valor = parseInt(prompt('Valor')); valorsafe = valor; while(valor != 1){ if(valor >= 100){ cem = valor / 100; valor -= (cem * 100); }else if(valor >= 50 && valor <=100){ cinquenta = valor/50; valor -= (cinquenta * 50); }else if(valor >= 10 && valor <= 50){ dez = valor/10; valor -= (dez * 10); }else if(valor >= 5 && valor <=10){ cinco = valor/5; valor -= (cinco * 5); }else if(valor < 5){ um = valor; valor = 1; } } document.write( valorsafe.toFixed(0) + '<br>' + 'cem: ' + cem.toFixed(0) + '<br>' + 'cinquenta: ' + cinquenta.toFixed(0) + '<br>' + 'dez: ' + dez.toFixed(0) + '<br>' + 'cinco: ' + cinco.toFixed(0) + '<br>' + 'um: ' + um.toFixed(0) + '<br>' ); so que ao rodar ele no mozila eu encontro o seguinte erro

      a linha 34 no caso é dentro do "document.write()".
      eu imagino que o navegador nao esta nem executando o meu "while" e por isso nao consegue atribuir um valor em "cinquenta", e por esse motivo buga.
    • Por Bombardi
      Olá pessoal, todos bem? espero que sim ... 
       
      Sou iniciante em JavaScript, e estou me preparando para iniciar um curso de Desenvolvimento Web Full Stack. 
       
      Acabei me daparando com algumas dificuldades com funções com o laço FOR, a minha dúvida foi em dois exercicios. Espero que possa contar com a ajuda de vocês na solução dos exercicios, e se possivel, até mesmo apontar onde eu estou errando, para que eu posso melhorar nesses pontos.
       
      Segue o primeiro Exercicio
       
       
      Segue o segundo exercicio: 

       
      Me desculpem qualquer coisa, e desde já, obrigado pela ajuda de todos! 
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.