Page 1 sur 1

Comportement de deux for .....

Posté : 17 déc. 2007, 21:23
par ryykko
Pas tres explicite mais bon

bonsoir
<?php
	include("lib/bdd.php");
	$ReqC = "SELECT * FROM comp";//requete simplifiee
	$CursC = mysql_query($ReqC);
	$NbC = mysql_numrows($CursC);
		
	//LANGUE
	echo'<div class="libelle">Langue</div>';	
	echo'<table width="100%"><tr>';
//PREMIERE BOUCLE
	for ($k = 0;$k < $NbC ;$k++) {	
	$IdC = mysql_result($CursC, $k, "IdComp");
    $LibelleC = mysql_result($CursC, $k, "LibelleComp");
	$TypeComp = mysql_result($CursC, $k, "TypeComp");
    $CatComp = mysql_result($CursC, $k, "CatComp");	
	
	if (($TypeComp=="1") AND ($CatComp=="1"))
		{			
			if ((($k % 4) == 0) AND ($k != 0)) //PERMET DE CREER UNE LIGNE
				{
				echo'</tr><tr>';
				} 
			echo'<td width="25%"><input type="checkbox" name="Type" value=""/>'.$LibelleC.'('.$k.')</td>';	
				
		}
	} 
	echo'</tr></table>';
	
	//BASE
	echo'<div class="libelle">base</div>';	
	echo'<table width="100%"><tr>';
	$j = 0;
//DEUXIEME BOUCLE
	for ($j = 0;$j < $NbC ;$j++) {	
	$IdC = mysql_result($CursC, $j, "IdComp");
    $LibelleC = mysql_result($CursC, $j, "LibelleComp");
	$TypeComp = mysql_result($CursC, $j, "TypeComp");
    $CatComp = mysql_result($CursC, $j, "CatComp");	
	
	if (($TypeComp=="1") AND ($CatComp=="2"))
		{			
			if ((($j % 4) == 0) AND ($j != 0)) 
				{
				echo'</tr><tr>';
				} 
			echo'<td width="25%"><input type="checkbox" name="Type" value=""/>'.$LibelleC.'('.$j.')</td>';					
		}
	} 
	echo'</tr></table>';
	
	?>
Mon probleme ici est que $j est dependant de $k: les valeurs ne s autoincrementent pas independamment. Et je ne comprends pas pourquoi????

merci pour vos reponses
:D

Posté : 17 déc. 2007, 21:47
par orgerix
Tu oublies le principale... C'est censé faire quoi ?

Re: Comportement de deux for .....

Posté : 18 déc. 2007, 09:27
par d0m
Mon probleme ici est que $j est dependant de $k
eh bien non, $j n'est pas dépendant de $k
Tes deux boucles ne sont pas imbriquées et il n'y a aucun lien entre $j et $k
for ($k = 0;$k < $NbC ;$k++) { 
  ...
}
for ($j = 0;$j < $NbC ;$j++) {
  ...
}
Tu as mal identifié ton problème.

Posté : 18 déc. 2007, 11:10
par jojolapine
Comme ça, au pif, je pense que ton problème vient du fait que tu cherches à exploiter deux fois le résultat d'une même requête, et cela sans remettre le curseur au début des résultats (voir mysql_data_seek() )...
Après je n'en sais rien... Mais je pense qu'il y a un petit problème de conception... à suivre

Posté : 18 déc. 2007, 11:38
par ryykko
desole de n avoir pas repondu plus tot,
je suis parti sur autre chose.

c est clairement la conception du script.
j' ai passe les resultats en tableau donc plus de probleme
merci pour vos rep. :D


resolu :arrow: