boucle while et condition if ou je me trompe ?

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 while et condition if ou je me trompe ?

par nairolf287 » 12 mars 2006, 20:41

Merci beaucoup !
Je me disais bien avoir vu un truc avec $i sur un site, mais je ne l'ai plus retrouvé.
en tous cas merci.
Je me suis inscrit lol

par zeus » 12 mars 2006, 17:25

Il existe une instruction php que l'on nomme modulo (%) et qui permet de connaitre si un nombre est un multiple d'un autre

Si tu veux afficher 4 éléments par ligne, il faut que tu récupères les élements à afficher et que tu utilise un modulo
//Parcours de la totalité des images
for($i = 1; $i <= $nb_images; $i++) {
  //Affichage de l'image courante
  echo $a_images[$i];
  //Si le numéro d'image courant est un multiple de 4, retour à la ligne
  if ($i % 4)
    echo "<br />";
}

Re: boucle while et condition if ou je me trompe ?

par rafaelle » 12 mars 2006, 15:47

Bonjour

Le principe c'est d'initialiser un compteur (qu'on appelle traditionnellement $i, je ne sais d'ailleurs pas trop pourquoi). A chaque boucle tu l'incrémentes et tu le testes
$requete_util_images=("select image from ".$utilisateur."_image where categorie=\"categorie1\"");
$req = mysql_query($requete_util_images) or die('Erreur SQL !<br>'.$requete_util_images.'<br>'.mysql_error());

//initialisation du compteur
$i=0;

while($data = mysql_fetch_assoc($req)) 
{
//$compteur +1
$i++;

echo '<a href='.$data['image'].'><img src='.$data['image'].' border=0 width=60 height=60></a>&nbsp;&nbsp;';

//si le reste de la division du compteur par 4 est 0, donc si le compteur est égal à 4, 8, 12 etc, on va à la ligne
if($i%4==0) echo '<br><br>';

} 
Tu vois le principe ?
Raf

par n-287 » 11 mars 2006, 12:54

je n'ai pas tres bien compris tout le code qui y est, mais moi les images que je veut mettre ne sont pas tous les enregistrement de ma table. car l'image doit avoir le champs categorie écrit "categorie1". Et il ne faut pas afficher celle de categorie2 par exemple.

Voici ma table :
ID - image - categorie

et les premieres entrer par exemple :
1 - http://salut.com/image.jpg - categorie1
2 - http://lalala.com/image.jpg - categorie2

Et je ne veut afficher que les images ayant categorie1 en commun et 4 par ligne. :wink:

par n-287 » 11 mars 2006, 12:46

merci je vai y jeter un oeil

meme deux :roll:

par zeus » 11 mars 2006, 12:22

Je pense que ce post pourrait t'aider car il correspond bien à ton problème

http://www.phpfrance.com/forums/voir_su ... modulo.php

boucle while et condition if ou je me trompe ?

par n-287 » 11 mars 2006, 10:48

Salut tout le monde !

Je suis en train de programmer un petit truc et j'ai un probleme :
$requete_util_images=("select image from ".$utilisateur."_image where categorie=\"categorie1\"");
$req = mysql_query($requete_util_images) or die('Erreur SQL !<br>'.$requete_util_images.'<br>'.mysql_error());

while($data = mysql_fetch_assoc($req)) 
    {
    echo '<a href='.$data['image'].'><img src='.$data['image'].' border=0 width=60 height=60></a>&nbsp;&nbsp;';
	$data = mysql_fetch_assoc($req);
	echo '<a href='.$data['image'].'><img src='.$data['image'].' border=0 width=60 height=60></a>&nbsp;&nbsp;';
	$data = mysql_fetch_assoc($req);
	echo '<a href='.$data['image'].'><img src='.$data['image'].' border=0 width=60 height=60></a>&nbsp;&nbsp;';
	$data = mysql_fetch_assoc($req);
	echo '<a href='.$data['image'].'><img src='.$data['image'].' border=0 width=60 height=60></a><br><br>';
    } 
En fait je veut afficher les images contenu dans une table et qui sont de categorie1 (un champs de la table).
Mais je veut qu'il y en est que 4 par ligne, donc j'ai mis 4 fois un echo. Et la le probleme est que meme s'il y en a moins de 4 a la derniere ligne sa me les affichent quand meme. :roll:

J'ai essayé de mettre des condition if mais ca ne marche pas. Quelqu'un sait comment faire :D ?