Page 1 sur 1
zonne repetee
Posté : 20 mai 2008, 20:52
par bill
Salut a tous, je fait une boucle pour afficher des resultats mais il s'affichent par défaut un en dessous de l'autre, je voudrais savoir comment les aficher un a coté de l'autre enfin deux par deux quoi ... Merci de m'aider
Posté : 20 mai 2008, 23:32
par zeus
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Débuter en PHP".
De plus, il est utile de donner le code que tu utilises actuellement, celui qui ne donne pas le résultat escompté, pour que nous puissions t'aider.
Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.
zone repetee
Posté : 21 mai 2008, 09:57
par unequestion
Merci, ben je bosse sur dremweaver en php 5
Posté : 21 mai 2008, 10:47
par zeus
En fait, ta question est une question de débutant (c'est pas une critique, on est tous passé par là), donc le forum PHP5 n'est pas franchement approprié.
Il doit être utilisé pour les question concernant la logique Objet de PHP.
Sinon, pour ta question, montre nous le code de ta liste actuelle et on essayera de t'aider

zone repetee
Posté : 21 mai 2008, 22:38
par unequestion
ben tou simplement une requete simple
mysql_select_db($database_Connect, $Connect);
$query_Resultats = SELECT * FROM mytable WHERE etc
$Resultats = mysql_query($query_Resultats, $Connect) or die(mysql_error());
$row_Resultats= mysql_fetch_assoc($Resultats);
$totalRows_Resultats= mysql_num_rows($Resultats);
et l'affichage par une boucle
<?php $i=0; while($val=mysql_fetch_array($Resultats)) { $i++;?>
echo 'de ce que je veux'
<?php } ?>
le truc c'est que les resultats sortent un en dessous de l'autre moi je veux un a coté de l'autre genre 2 ou 3 cote a cote ensuite la ca repart a la ligne
Merci
Posté : 21 mai 2008, 23:13
par nass
essaye ça
echo "<div style='width:300px'><p>";
echo $ceQueTuVeut;
echo "</p></div>";
Posté : 21 mai 2008, 23:47
par zeus
Tu utilises une variable $i qui s'incrémente à chaque itération de la boucle.
Pour que tout les X résultats, tu ais un saut à la ligne, il faut que tu testes si $i est un multiple de X.
Il existe un opérateur mathématique pour ça : le modulo.
En PHP, le modulo est le signe % (pourcentage)
Pour voir comme il fonctionne essaye le code suivant
for($i=0; $i++; $i<30)
{
$toDisplay = '$i:'.$i;
if( $i%3 )
$toDisplay .= ' est un multiple de 3';
$toDisplay .= '<\br>';
echo $toDisplay;
}
edit : et que compte tu faire avec ce code
nass ?
Posté : 22 mai 2008, 00:03
par nass
edit : et que compte tu faire avec ce code nass ?
C'est une sugestion, mais la tienne est meilleurs

zone repetee
Posté : 22 mai 2008, 11:16
par unequestion
merci pour ces reponses, bon je ne sais pas si j'ai bien percuté le truc mais quand je teste le code la :
$i=0;while($val=mysql_fetch_array($ResultatsMeetAdhs)) { $i++;
$toDisplay = '$i:'.$i;
if( $i%3 )
$toDisplay .= ' est un multiple de 3';
$toDisplay .= '<\br>';
echo $toDisplay;
}
ca me sort
$i:1 est un multiple de 3<\br> $i:2 est un multiple de 3<\br> $i:3<\br> $i:4 est un multiple de 3<\br>
je vois pas le rapport avec le saut a la ligne apres 2 ou 3 resultats
Bref en gros peut etre que je me suis mal exprimé mais ce que je cherche c'est une zone repetée mais horizontale
Merci d'avance
Posté : 22 mai 2008, 11:21
par guilt92
C'est normal.
if($i%3) sera égale à 0 une fois sur 3. Toi tu testes quand est ce que cela sera différent de 0 donc tu vois tous les cas sauf ceux ou $i est un multiple de 3. En faisant l'inverse tu auras le résultat attendu :
for($i=0; $i++; $i<30)
{
$toDisplay = '$i:'.$i;
if( !$i%3 )
$toDisplay .= ' est un multiple de 3';
$toDisplay .= '<\br>';
echo $toDisplay;
}
Ensuite à toi d adapter pour ton code, si tu sais afficher quelque chose toute les x occurences tu sais mettre des sauts de lignes ou ce que tu veux à ces occurences la

zone repetee
Posté : 22 mai 2008, 11:57
par unequestion
Ahh ok d'acord je vois mieux la c'est gentil , donc en testant
$toDisplay =$i;
if( $i%2 ==0)
$toDisplay .= '<br>';
echo $toDisplay;
ca me sort
1 2
3 4
c'est parfait il suffit juste de remplacer par ce que je veux afficher j'ai donc fait
$toDisplay ='<table width="473" height="120" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td width="446" height="82">'.$val["nom"].'</td></tr></table>';
if( $i%2 ==0)
$toDisplay .= '<br>';
echo $toDisplay;
et la ca me sort les resultats un en dessous de l'autre ... bizare
Posté : 22 mai 2008, 12:11
par guilt92
Je crois que la balise <table> provoque un retour à la ligne.
Pourquoi les mettre dans un tableau si c'est pour un seul élément ? (une seule ligne une seule colonne dans ton tableau...)
Soit tu affiches les résultats comme du texte hors du tableau, soit tu te sers de ce code pour adapter les <tr></tr> de ton tableau et donc tu crée des colonnes à chaque passage mais tu crées une fin de ligne et un début de nouveau de ligne que une fois sur 2...
zone repetee
Posté : 22 mai 2008, 12:52
par unequestion
ben en fait j'ai donné juste un element parmi d'autre pour simplifier mais je dois afficher pa mal de truc pour chaque tableau, d'ou le tableau ou zone ou region repetée horizontale mais je vois ce que tu veux dire il faut jouer avec les tr , je vais voir en tout cas merci c gentil de ta part A+