Aller au contenu

Messages recommandés

Posté(e)

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 :

  • SEGA
    Megadrive, Master System, Dreamcast, Game Gear
  • NINTENDO
    Super Nintendo, Nintendo 64, GameCube, Nes

Et il me faudrait ça :

  • SEGA
    Megadrive, Master Sys...
  • NINTENDO
    Super 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.

Posté(e)

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.

Posté(e)

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.

Posté(e)

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 :fuck:

Posté(e)

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);

Posté(e)

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 :wacko:

Posté(e)

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 ^^

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

By using this site, you agree to our Conditions d’utilisation.