PHP retour à la ligne après un while

Résolu/Fermé
vincent - 15 juin 2009 à 14:14
 vincent - 15 juin 2009 à 15:11
Bonjour,
j'ai codé une fonction php permettant de récupérer des pseudos en base et de les afficher les uns à la suite des autres, dans une div (définie avec une largeur fixe).

while($rang = mysql_fetch_array($rqpseudos))
{
echo $rang['pseudo'] . '  ' ;
}

Les pseudos s'affichent bien et sont bien espacés de 2 espaces.
Mon problème est que la liste de pseudos s'affichent sur une seule ligne et déborde de la div. J'aimerais, arrivé à la bordure droite, avoir un retour à la ligne automatique.

Ce que j'ai :
pseudo1 pseudo2 pseudo3 pseudo4 pseudo5 pseudo6 pseudo7 pseudo8 pseudo9 pseudo10

Ce que j'aimerais :
pseudo1 pseudo2 pseudo3 pseudo4 pseudo5
pseudo6 pseudo7 pseudo8 pseudo9 pseudo10
ainsi de suite

Comment faire svp ?

5 réponses

gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
15 juin 2009 à 14:18
Essaie avec le propriété CSS:
word-wrap: break-word

sur ton div
0
cireme83 Messages postés 17 Date d'inscription mercredi 10 juin 2009 Statut Membre Dernière intervention 17 janvier 2011 3
15 juin 2009 à 14:23
$boucle=0;
while($rang = mysql_fetch_array($rqpseudos))
{
echo $rang['pseudo'] . ' ' ;
$boucle++;
if($boucle==4)
{
echo'<br/>;
$boucle=0;
}
}

pourquoi pas un truck de ce genre?
0
remplace :
if($boucle==4)
{
echo'<br/>;
$boucle=0;
}

par :
if(!boucle%5) echo("<br />");

Comme ça, moins de ligne et moins de calculs à effectuer.
Après, tu change le %5 par le nombre d'éléments à afficher sur une ligne (ici 5).
0
super ca marche ! Un petit truc c'est que le retour à la ligne coupe les pseudos en 2 :

pseudo1 pseudo2 pseudo3 pseudo4 pseu
do5 pseudo6 pseudo7 pseudo8 pseudo9 p
seudo10

tu connaitrais un moyen de ne pas couper les mots ?
sinon ca marche c'est super, merci beaucoup
0
merci pour ta solution avec le nombre de boucles cireme, mais je ne pense pas que ce soit la meilleure au niveau "design". Si je définis une ligne à 4 pseudos je peux avoir :
- une petite ligne avec des pseudos ne faisant que 3 ou 4 caractères
- une grosse ligne avec des pseudos faisant entre 10 et 15 caractères

Malgré la coupe en plein milieu d'un pseudo, je préfère la solution de gigaga.
Merci à vous 2 pour votre aide précieuse !
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
15 juin 2009 à 14:39
la solution word-wrap: break-word est automatique et ne nécessite pas de code particulier. C'est le navigateur qui s'occupe de ça.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pour compléter la réponse de gigaga :

- word-wrap: break-word ne fonctionne pas sous firefox. Pour contourner ce problème, utiliser cette fonction directement dans php :
http://fr3.php.net/wordwrap
0