Boucle mystérieuse

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 : Boucle mystérieuse

par Oxley » 18 janv. 2008, 19:07

Ah d'accord!!!!!!!!!!!!!

Bon voila le resultat final:
	while($champ = mysql_fetch_array($requete) and $cpt!=4)
	{
	$cpt=0;	
		for($i=0;$i<5;$i++)
		{
			
			if($champ[$i]=="non_disponible.gif")
				{
				$cpt++;
				}
			
		}
		
	
	}		

Tout est nikel merci beaucoup :D

par Ryle » 18 janv. 2008, 18:23

vivi, c'est possible avec une boucle, mais il te faut distinguer la boucle qui parcours les enregistrements trouvés en base (ce que fait actuellement ton while) et une seconde boucle qui parcourerait les champs de cet enregistrement :)

par Oxley » 18 janv. 2008, 18:13

Oui merci ryle, je savais qu'on pouvait parcourir le tableau comme tu l'as indiqué, mais je veux faire une boucle pour compte le nombre de photo enregistrer

donc quand le nom de la photo est "non disponible" le compteur s'incrémente de 1, et a la fin si il y a par exemple le compteur a 2, ceci voudra dire qu'on pourra rajouter encore 2 photos.

Je voulais passer par une boucle pour eviter de refaire 4 if.

Je pense que ça doit etre possible avec une boucle car le pauvre qui veut faire pareil avec 100photos il est pas couché:p

par Ryle » 18 janv. 2008, 18:00

Ta boucle parcours les enregistrements ("lignes") retournés par ta requête, ce qui est différent de la liste des valeurs qu'ils contiennent... Tu as vraissemblablement donc 1 seul enregistrement retourné, contenant 4 champs, et ce sont ces 4 champs qu'il te faut parcourir après avoir lu le ou les enregistrements.. :)
Fais un print_r() de $champ, tu verras qu'il s'agit d'un tableau contenant les valeurs de chaque enregistrement qu'il te suffit d'afficher (à l'aide d'une boucle ou non) $champ['Photo1'], $champ['Photo2'], ...


@d0m : utiliser "and" à la place de "&&" n'est pas faux, il s'agit de deux opérateurs logiques différents, la différence se situant au niveau de leur priorité, principallement par rapport à l'affectation :
($champ = mysql_fetch_array($requete) and $cpt!=4) 
// équivaut à écrire
$champ = (mysql_fetch_array($requete) && $cpt!=4)
Ce n'est pas faux, ce n'est juste pas pareil ;)

par Oxley » 18 janv. 2008, 17:02

Salut et merci,

Si je suis ta méthode ca me renvoie ceci :

1
nom:

Je pense qu'il doit y avoir un probléme avec mes ' ' ou " "

Dans cette ligne $photo.$cpt=$champ["Photo$cpt"];

Non?

par d0m » 18 janv. 2008, 16:56

essaie avec des opérateurs PHP corrects :
//pas bon
while($champ = mysql_fetch_array($requete) and $cpt!=4) 

//bon
while($champ = mysql_fetch_array($requete) && ($cpt!=4)) 

Boucle mystérieuse

par Oxley » 18 janv. 2008, 16:51

$requete = mysql_query("SELECT Photo1,Photo2,Photo3,Photo4
					      FROM Annonce;");
					
	$cpt=1;			
	while($champ = mysql_fetch_array($requete) and $cpt!=4)
	{
	echo"$cpt<br>";
	$photo.$cpt=$champ["Photo$cpt"];
	echo"nom:$photo$cpt<br>";
	if($photo.$cpt=="non_disponible.gif")
		{
		$cpt++;
		
		}
	
	 }	
Ca m'affiche :

1
nom:63532800 1200590473.jpeg

Le boucle s'arrete à la premiere image, je ne comprend pas pourquoi!!!!
Auriez vous une réponse logique amon probléme????