Ir para conteúdo

POWERED BY:

Arquivado

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

luan_alves

[Resolvido] For dentro de outro for

Recommended Posts

Estou tendo o seguinte problema eu tenho um for dentro de outro, e o segundo for trabalha com ajax, então toda vez que ele acha alguma coisa ele escreve dentro de uma div, outra div com o conteúdo.

o problema é o seguinte, toda vez que tem um conteudo dentro do segundo for, o restante do conteudo do primeiro for não aparesce mais.

segue o código para analise

<?php
$atividade = $QuerySQL->executeQuery("select * from atividades ");// faz o select buscando a atividades
$linha = mysql_num_rows($atividade);
   if($linha>0)
   {
       for ($i=0; $i <$linha; $i++)
       {
           $reg = mysql_fetch_array($atividade);
           ?>
               <div id="conteudo_atividades">
                   <div id='fotos' class="redimensiona">
                       <img alt=""  src='atividades/fotos_atividades/<? echo$reg[0]?>.jpg'>
                   </div>
                   <p atividade='<? echo$reg[1]?>' id='<? echo$reg[0]?>'>Título: <? echo $reg[1]?></p>
                       <form action="atividades/model/upload_Atividades.php" id="form" name="form" method="post" enctype="multipart/form-data">
                           <b >tamanho máximo de 2 MB; tipos de arquivos permitidos: JPEG:</b><br />
                           <input type="file" name="DfAnexo" size="50" />
                           <input name="submit" type="submit" value="Enviar" class="formbutton" />
                           <input type="hidden" name="id_atividade" id="id_atividade" value="<? echo $reg[0] ?>" />
		</form>
                   <br/>
                   <div class="centraliza"><div id="botao_<? echo$reg[0]?>" class="esquerda"><input type="submit"  value="Editar" onclick="altera_Atividade(<? echo$reg[0]?>);"></div><div class="direita"><input type="submit" value="Conteúdo" onclick="exibe_Cad_Titulo(<? echo$reg[0]?>)"/></div><div class="direita"><input type='submit' value='Excluir' onclick='excluir_Atividade(<? echo$reg[0]?>);'></div></div>
                   <br/><br/><br/>
                   <div id="conteudo_<? echo$reg[0]?>" ></div>
                   <?// faz o select buscando as subatividades de acordo com o id informado da atividade
                       $subatividade = $QuerySQL->executeQuery("select * from subatividades where id_atividade=$reg[0] order by subtitulo ");
                       $linha_Subatividade = mysql_num_rows($subatividade);
                           if($linha_Subatividade>0)
                           echo $linha_Subatividade;
                           {
                               for ($i=0; $i <$linha_Subatividade; $i++)
                               {
                                   ?>
                                   <div id="conteudo_subatividade">
                                       <?
                                       $reg_Subatividade = mysql_fetch_array($subatividade);
                                       ?>
                                           <p id="<? echo $reg_Subatividade[0]?>" >Título: <? echo $reg_Subatividade[2]?></p>
                                           <p id="conteudo_<? echo $reg_Subatividade[0]?>">Conteudo: <? echo $reg_Subatividade[3]?></p>
                                           <p id="botao_<? echo $reg_Subatividade[0]?>" ><input type='submit' class='formbutton2' value='Editar' onclick='altera_Sub_Titulo(<?echo $reg_Subatividade[0] ?>);'><input type='submit' value='Excluir' onclick='excluir_Subatividade(<?echo $reg_Subatividade[0] ?>);'></p>

                                       <?
                                   ?>
                                   </div>
                                   <?
                               }
                           }

                   ?>
               </div>


           <?
       }
   }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem erros?

 

Tenta ai:

 

<?php
$atividade = $QuerySQL->executeQuery("select * from atividades ");// faz o select buscando a atividades
$linha = mysql_num_rows($atividade);
if($linha>0)
{
	for ($i=0; $i <$linha; $i++)
	{
	$reg = mysql_fetch_array($atividade);
	?>
	<div id="conteudo_atividades">
	<div id='fotos' class="redimensiona">
	<img alt="" src='atividades/fotos_atividades/<?php echo $reg[0]?>.jpg'>
	</div>
	<p id="<?php echo $reg[0]?>">Título: <?php echo $reg[1]?></p>
	<form action="atividades/model/upload_Atividades.php" id="form" name="form" method="post" enctype="multipart/form-data">
	<b >tamanho máximo de 2 MB; tipos de arquivos permitidos: JPEG:</b><br />
	<input type="file" name="DfAnexo" size="50" />
	<input name="submit" type="submit" value="Enviar" class="formbutton" />
	<input type="hidden" name="id_atividade" id="id_atividade" value="<?php echo $reg[0] ?>" />
	</form>
	<br/>
	<div class="centraliza"><div id="botao_<?php echo $reg[0]?>" class="esquerda"><input type="submit" value="Editar" onclick="altera_Atividade(<?php echo $reg[0]?>);"></div><div class="direita"><input type="submit" value="Conteúdo" onclick="exibe_Cad_Titulo(<?php echo $reg[0]?>)"/></div><div class="direita"><input type='submit' value='Excluir' onclick='excluir_Atividade(<?php echo $reg[0]?>);'></div></div>
	<br/><br/><br/>
	<div id="conteudo_<?php echo $reg[0]?>" ></div>
	<?php
		// faz o select buscando as subatividades de acordo com o id informado da atividade
	$subatividade = $QuerySQL->executeQuery("select * from subatividades where id_atividade={$reg[0]} order by subtitulo");
	$linha_Subatividade = mysql_num_rows($subatividade);
	if($linha_Subatividade>0)
	{
		echo $linha_Subatividade;
		for ($i=0; $i <$linha_Subatividade; $i++)
	{
	?>
	<div id="conteudo_subatividade">
	<?php
	$reg_Subatividade = mysql_fetch_array($subatividade);
	?>
	<p id="<?php echo $reg_Subatividade[0]?>" >Título: <?php echo $reg_Subatividade[2]?></p>
	<p id="conteudo_<?php echo $reg_Subatividade[0]?>">Conteudo: <?php echo $reg_Subatividade[3]?></p>
	<p id="botao_<?php echo $reg_Subatividade[0]?>" ><input type='submit' class='formbutton2' value='Editar' onclick='altera_Sub_Titulo(<?php echo $reg_Subatividade[0] ?>);'><input type='submit' value='Excluir' onclick='excluir_Subatividade(<?php echo $reg_Subatividade[0] ?>);'></p>
	</div>
	<?php
	}
	}
	?>
	</div>
	<?php
	}
}
?>

 

Era bom saber qual erro o php apresenta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os dois laços de repetição utilizam a mesma variável $i para incrementar e controlar os laços.

 

Estude sobre escopo de variáveis em laços de repetição e entenderá o que está acontecendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exatamente o que eu disse anteriormente.

 

Não há erro aparente. O único problema é que a variável que serve de referência para o primeiro laço é incrementada também no segundo laço, fazendo com que o primeiro laço seja interferido pelo segundo.

 

Entendeu?

 

Veja com atenção:

 

for($i = 0; $i < 5; $i++) {
for($i = 0; $i < 10; $i++) {

}
}

Quantas vezes o laço de fora será executado?

 

Pense bem e entenda o que acontece no seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos que responderam a este post, e o erro, era exatamente o que o amigo disse, o escopo dos laços eram iguais, então eu troquei as variaveis e tudo voltou a funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara o problema está no for() quando o primeiro for faz o loop ele leva um dado quando retornava para fazer outro loop ele já trazia outro valor por causa do segundo for() que continha a mesma variável $i++, troquei por $j++.

 

tenta ae, qualquer coisa grita..

 

<?php
       // faz o select buscando as subatividades de acordo com o id informado da atividade
   $subatividade = $QuerySQL->executeQuery("select * from subatividades where id_atividade={$reg[0]} order by subtitulo");
   $linha_Subatividade = mysql_num_rows($subatividade);
   if($linha_Subatividade>0)
   {
           echo $linha_Subatividade;
           for ($i=0; $j <$linha_Subatividade; $j++)
       {
       ?>
	<div id="conteudo_subatividade">
       <?php
		$reg_Subatividade = mysql_fetch_array($subatividade);
       ?>
		<p id="<?php echo $reg_Subatividade[0]?>" >
			Título: <?php echo $reg_Subatividade[2]?>
		</p>
		<p id="conteudo_<?php echo $reg_Subatividade[0]?>">
			Conteudo: <?php echo $reg_Subatividade[3]?></p>
		<p id="botao_<?php echo $reg_Subatividade[0]?>" >
			<input type='submit' class='formbutton2' value='Editar' onclick='altera_Sub_Titulo(<?php echo $reg_Subatividade[0] ?>);'>
			<input type='submit' value='Excluir' onclick='excluir_Subatividade(<?php echo $reg_Subatividade[0] ?>);'>
		</p>
       </div>
       <?php
       }
   }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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