Loriciel Posté(e) le 25 février 2004 Signaler Partager Posté(e) le 25 février 2004 Bonjour, C'est la première fois que je poste sur ce forum mais je suis depuis pas mal de temps l'évolution du site (qui évolu très bien en passant ) aussi je crée maintenant le mien seulement j'ai un petit soucis... Je suis en train de réaliser un script PHP pour un annuaire de site avec des rubriques et des sous rubriques. Je souhaiterais en fait affficher en dessous de chaque rubrique qu'une partie limité (à une certain nombre de caractères) des sous rubriques. Exemple : Pour l'instant j'ai ça : SEGAMegadrive, Master System, Dreamcast, Game Gear NINTENDOSuper Nintendo, Nintendo 64, GameCube, Nes Et il me faudrait ça : SEGAMegadrive, Master Sys... NINTENDOSuper Nintendo, Ninten... Vous allez me dire pour quoi tu demandes ici, ben en fait j'ai vu sur le site dans le menu de droite (projet VEDA) que les noms de jeux étaient raccourcis avec des pointillés. Voilà merci pour vos réponses. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kenshiro84 Posté(e) le 25 février 2004 Signaler Partager Posté(e) le 25 février 2004 Sujet déplacé Juste pour éviter que se soit le bordel sinon pour ton probleme je peut pas t'aider, je n'y connais pas en php. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
The Jedi Posté(e) le 25 février 2004 Signaler Partager Posté(e) le 25 février 2004 Ben en fait, il n'existe pas de fonction PHP destinée à tronquer du texte. Tu as wordwrap() qui te permet de couper ton texte en morceaux tous les n-caractères mais à part ça, rien ne s'y rapproche. J'ai fait une petite fonction simple à utiliser pour couper les caractères. function coupe($texte,$maxchar,$suffixe='...') { if(strlen($texte)>$maxchar) { $texte = substr($texte,0,$maxchar-strlen($suffixe)).$suffixe; } return $texte; } Et pour l'utiliser rien de plus simple echo coupe("Mon texte super long à couper",10,"."); Premier paramètre : ton texte Deuxième paramètre : le nombre de caractères maxi à accepter. Si la taille du mot dépasse ce nombre, le texte sera coupé à partir de là et remplacé par le 3° paramètre. La longueur du 3° paramètre est prise en compte dans le tas soit dit en passant. Troisième paramètre : la chaine remplaçant la coupure du mot/phrase. Si tu ne renseignes pas ce paramètre dans l'appel de ta fonction, les points de suspension "..." seront automatiquement utilisés. Merci pour ton appréciation sur le site on continuera sur cette voie comme vous pourrez le constater dans quelques temps. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Loriciel Posté(e) le 26 février 2004 Auteur Signaler Partager Posté(e) le 26 février 2004 Merci de ta réponse cela fonctionne bien mais seulement au lieu de me limiter la ligne entière cela me met pour chaque mot : - SEGA Megadr..., Master Sys..., Dream..., Game G... En fait voilà mon code : $query = "SELECT * FROM sous_rubrique WHERE id_rubrique = $id2 ORDER BY nom ASC LIMIT 0,3"; $result = mysql_query($query) or die(mysql_error()); while ($row= mysql_fetch_array($result)) echo coupe("$row[nom]",10,"..."); Il faudrait donc que j'affiche la ligne entière dans une variable et ensuite que j'utilise la fonction de coupe j'ai essayé ça : $variable = echo "$val[nom]"; echo coupe("$variable",10,"..."); mais cela me donne une erreur Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
The Jedi Posté(e) le 26 février 2004 Signaler Partager Posté(e) le 26 février 2004 C'est dangereux ton histoire pque je suppose qu'il y a des liens sur tes noms de machine. Ca risque de couper également la balise et tout va partir en vrille. Sinon fais ça $ligne = ''; $result = mysql_query("select * from sous_rubrique where id_rubrique = '$id2' order by 'nom' asc limit 0,3"); while( $row = mysql_fetch_array($result) ) { $ligne .= $row . ", "; } $ligne = rtrim($ligne,", "); echo coupe($ligne,10); Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Loriciel Posté(e) le 27 février 2004 Auteur Signaler Partager Posté(e) le 27 février 2004 J'ai essayé le code mais cela me marquue array... à la place Mais non, en fait c'est idiot ce que je veux faire... Je vais juste limiter le nombre de sous-rubrique à 3 pour chaque rubrique et ajouter '...' à la fin et ensuite faire un rand() dessus pour afficher des sous-rubrqiues différents à chaque fois, histoire de ne pas voir toujours les mêmes. Pardon de t'avoir fait perdre du temps Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
The Jedi Posté(e) le 27 février 2004 Signaler Partager Posté(e) le 27 février 2004 Hm j'ai dû zapper un truc en le faisant vite fait. Pour les faire apparaitre au hasard, fais cette requête à la place : "select * from sous_rubrique where id_rubrique = '$id2' order by RAND() limit 0,3 Après avoir fait ton mysql_fetch_array(), tu n'as plus qu'à mettre tes "..." manuellement Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.