PHP retour à la ligne après un while

Résolu
vincent -  
 vincent -
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 ?
Configuration: Windows XP
Safari 530.5

5 réponses

  1. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    Essaie avec le propriété CSS:
    word-wrap: break-word

    sur ton div
    0
  2. cireme83 Messages postés 19 Statut Membre 3
     
    $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
    1. Pwoned
       
      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
  3. vincent
     
    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
  4. vincent
     
    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
    1. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vincent
     
    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