Exécuter la boucle.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Exécuter la boucle.

par jpsartre » 30 nov. 2006, 00:18

Bonjour,

J'ai réparé ce problème grâce à ton aide.
Je n'aurais jamais trouvé seul,
Merci encore, j'ai toujours pu compter sur vous.
Je crois que je n'ai que des résolus.

A bientôt,

par jpsartre » 19 nov. 2006, 23:04

Merci,

Tu as tout à fait raison.
C'est vrai que je m'y perds quand j'ai trop de code sur une page.
C'est comme un chateau de cartes :?
Je vais essayer de mettre tout cela en forme afin d'y voir plus clair pour réparer.
Je repasse plus tard pour dire que c'est résolu si j'y arrive.

Merci encore pour le conseil.

Re: Exécuter la boucle.

par Ryle » 19 nov. 2006, 21:27

Si je puis me permettre, ton indentation est déplorable... impossible de voir ou se termine le while() sans une recherche d'accolade. Une accolade ouvrante on décale d'une tabulation à droite, une accolade fermante on revient d'une tabulation à gauche, c'est pas sorcier ;)

Si tu veux revenir au bord de la page quand tu affiches du code html, libre à toi, mais au moins replace toi correctement quand tu repars sur du php derrière...

Quel rapport avec ton problème ? et bien simplement qu'en indentant bien, on pourrait te dire tout de suite qu'à l'intérieur de ton while (encore faut-il savoir où il se termine ;)) tu as un autre while() pour ouvrir le sous-dossier et dans lequel tu écrases les valeurs de $f et $dir. C'est donc normal si à l'itération suivante le while principal ne trouve plus rien et sort de la boucle :)

Exécuter la boucle.

par jpsartre » 19 nov. 2006, 16:36

Bonjour,

J'ai cette page qui devrait m'afficher tous les événements qui contiennent un dossier images portant le nom d'id de l'événement.
Mais elle ne m'affiche que le premier alors que j'ai 4 événements avec des dossiers images. J'ai pourtant mis le while.
J'ai essayé tout ce que je pouvais sans résultat.
Si quelqu'un peut m'aider à trouver le problème.
L'erreur est sûrement en haut de code, avant le début du tableau. Mais je suis bloqué.

Le code de la page :
<HTML>
<HEAD>
<TITLE>administration</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<LINK rel="stylesheet" href="../style.css" type="text/css">
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000" link="#FF6633" vlink="#FF6633" alink="#FF6633">
<? 
$repere = 'Galerie';
require ('../connexion.php');
require ('header_abonnes.php');
require "../fonction.php";

		$commentaire = StripSlashes ($commentaire);
		$rdv = StripSlashes ($rdv);
		$description = StripSlashes ($description);
		$nom = StripSlashes ($nom);
// Lister les dossiers contenus dans le dossier des galeries pour récupérer les noms de dossiers, donc les id		
$rep = "images/"; 
$dir = opendir($rep); 

while ($f = readdir($dir)) 
{ 
    //s'il s'agit d'un répertoire ET qu'il ne s'agit pas du courant ou parent 
       if(is_dir($rep.$f) && $f != "." && $f != ".." )
    {   
       //echo "Nom : ".$f; 
        $query = "SELECT * FROM evenements WHERE id = '".$f."' ORDER BY dd DESC"; 
        $result = mysql_query($query); 
         
        //$Record = mysql_fetch_object($result)
         
	
		//$query = "SELECT * FROM evenements WHERE id = '".$f."' ORDER BY nom ASC";
		//$result = mysql_query($query);
	if($result)
	{
		while($Record = mysql_fetch_object($result))
		{
?>
<TABLE width="800" border="0" cellspacing="3" cellpadding="0" align="center">
  <TR> <TD colspan="2" class="fond-gris_fonce"><h2>
<?
 if ($Record->dd == $Record->df)
{


?>
 <span class="nom"><? echo french_date($Record->dd); ?> 

<? // =substr($Record->dd,8,2).'/'.substr($Record->dd,5,2).'/'.substr($Record->dd,0,4)?> 

</span>  
<?
}
else 
{
?>
Du  <span class="nom"><? echo french_date($Record->dd); ?>  
<? //=substr($Record->dd,8,2).'/'.substr($Record->dd,5,2).'/'.substr($Record->dd,0,4)?>  </span>
 Au 
<span class="nom"> 
<?=substr($Record->df,8,2).'/'.substr($Record->df,5,2).'/'.substr($Record->df,0,4)?>
</span>  
<?
}
?>
   > <span class="nom"> 
      <?=$Record->nom?>
      </span> > ref : 
      <?=$Record->ref?>
      | <span class="nom">
      <?=$Record->type?>
      </span> </b></h2></TD>
  </TR>
  <TR> 
    <TD width="30" height="30" rowspan="2" valign="top"> 
      <?
			if ($Record->type == "decouverte")
				echo  '<img src="../images/decouverte.gif" width="30" height="30" alt="Découverte">';
			elseif ($Record->type == "sport")
				echo '<img src="../images/sport.gif" width="30" height="30" alt="Sport">';
			elseif ($Record->type == "detente")
				echo '<img src="../images/detente.gif" width="30" height="30" alt="Détente">';
			else 
				echo '<img src="../images/sejours.gif" width="30" height="30" alt="Voyages, séjours">';
	?>
    </TD>
    <TD width="770" valign="top" class="fond_blanc"> <p> 
        <?
	   //TEST VIGNETTES
	  $rep = "../vignettes/".$Record->id."/"; 
if(is_dir($rep)) { 
  $dir = opendir($rep); 
  while ($f = readdir($dir)) { 
    if(is_file($rep.$f)) { 
      echo '<span class="image"><img src="../vignettes/'.$Record->id.'/'.$f.'" alt="'.$Record->type.'" width="120" height="120"  align="right"/></span>'; 
      break; 
    } 
  } 
} 
else { 
  echo ''; 
} 
	  ?>
        <?=$Record->description?>
      </p>
      <p>COMMENTAIRE : 
        <?=$Record->commentaire?>
      </p>
      <p>LIEU RDV : 
        <?=$Record->rdv?>
      </p></TD>
  </TR>
  <TR> 
    <TD class="fond_blanc"> PRIX : <B> 
      <?=$Record->prix?>
      </B> &euro; | 
      <? 
   			if ($Record->statut == 0)
				echo  'PREVU';
			elseif ($Record->statut == 1)
				echo 'CONFIRME';
			elseif ($Record->statut == 2)
				echo 'COMPLET';
			elseif ($Record->statut == 3)
				echo 'ANNULE';
			else 
				echo 'ARCHIVE';   //($Record->statut == 4)
	  ?>
    </TD>
  </TR>
  <TR> 
    <TD colspan="3" align="right" class="titre_gris"> 
      <?
//vérification de l'existence du dossier
//if(is_dir('../abonnes/images/'.$id.'/')) 
if(is_dir('../vignettes/'.$Record->id.'/'))
{
// on compte le nombre de photo dans le dossier
				$nb_f = 0;

$opdir = opendir('../vignettes/'.$Record->id.'/');
while ($c = readdir($opdir)) 
{
   if (!is_dir($c)) $nb_f++;
}

closedir($opdir);

//echo ("La galerie de présentation contient ".$nb_f." photographie(s) | ");
?>
      <a href="activite.php?id=<?=$Record->id?>">Voir les images de pr&eacute;sentation</a> 
      ( 
      <?=$nb_f?>
      ) | 
      <?
				}    
			else
			{
				echo  '';
				}

//vérification de l'existence du dossier
//if(is_dir('../abonnes/images/'.$id.'/')) 
if(is_dir('images/'.$Record->id.'/'))
{
// on compte le nombre de photo dans le dossier
				$nb_f = 0;

$opdir = opendir('images/'.$Record->id.'/');
while ($c = readdir($opdir)) 
{
   if (!is_dir($c)) $nb_f++;
}

closedir($opdir);

//echo ("La galerie contient ".$nb_f." photographies | ");
?>
      <a href="archives_galerie.php?id=<?=$Record->id?>">Voir les images d'archives</a> 
      ( 
      <?=$nb_f?>
      ) | 
      <?
				}    
			else
			{
				echo  ' ';
				}
	$compte = mysql_query("SELECT Count(*) FROM evenements WHERE id = '".$Record->id."' AND statut IN (0, 1)");
    $okpanier = mysql_result($compte, 0);
	$comptepanier = mysql_query("SELECT Count(*) FROM panier WHERE pseudo = '".$_SESSION['pseudo']."' AND ref = '".$Record->ref."'");
    $dejapanier = mysql_result($comptepanier, 0);
	if (($okpanier) && ($dejapanier == 0))
	{
?>
      <a href="<? echo $PHP_SELF ?>?pseudo=<?=$_SESSION['pseudo']?>&ref=<?=$Record->ref?>&ADD=1">S&eacute;lectionner</a> 
      <?
	  }
else if (($okpanier) && ($dejapanier == 1))
{ 

	?>
      D&eacute;j&agrave; s&eacute;lectionn&eacute; 
      <?
	  }
	  ?>
    </TD>
  </TR>
  <TR> 
    <TD colspan="3"> <hr></TD>
  </TR>
</TABLE>
<?
		}
	}
	}
	}
//	else{
//			echo"erreur de requête";
//}
mysql_close();
?>

</BODY>
</HTML>

Merci,