Forcer un retour à la ligne

Eléphant du PHP | 440 Messages

10 juil. 2009, 17:07

Bonjour,

ce bout de code :
echo 'Site web : <a href="http://'.mysql_result($res, $i, "WEB").'" target="_blank">'.mysql_result($res, $i, "WEB").'</a><br /><br />'; 
m'affiche l'adresse de sites internet. Ceci dans la colonne de gauche d'un tableau qui comporte 3 colonnes.
Problème, lorsque l'adresse est trop longue, la colonne de gauche s'agrandit et les colonnes de droite sont décalées. Résultat, une mise en page fichue !
Mystère : ça ne se passe pas comme ça à tous les coups ! Presque toutes les adresses longues vont sur 2 lignes, ce qui résout le problème. Mais pas toutes. Pourquoi ??

Y a-t-il moyen de forcer ce retour à la ligne ? Ou bien, y a-t-il moyen de figer la largeur des colonnes, ce qui devrait forcer le retour à la ligne ? Actuellement ces largeurs sont exprimées en %.

Merci pour vos commentaires.
Débutant complet en php/mysql. Merci pour votre aide.

Eléphanteau du PHP | 23 Messages

10 juil. 2009, 19:13

Bonjour,

En CSS mais ca ne marche que pour IE : td {word-wrap: break-word;}

Sinon je te propose :

Code : Tout sélectionner

echo 'Site web : <a href="http://'.mysql_result($res, $i, "WEB").'" target="_blank">'.substr(mysql_result($res, $i, "WEB"), 0, 20).'...</a><br /><br />';
substr(mysql_result($res, $i, "WEB"), 0, 20) n'affichera que les 20 premier caractère de ton url ...

Ou encore, tu peux utiliser un service genre bit.ly pour créer des URL plus courte (http://james.cridland.net/code/bitly.html)

Eléphant du PHP | 440 Messages

10 juil. 2009, 20:03

la solution substr me convient, j'adopte. Merci.
Débutant complet en php/mysql. Merci pour votre aide.