Ne sélectionner que les 1er caractères d'un champ TEXT ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ne sélectionner que les 1er caractères d'un champ TEXT ?

par Twiny » 17 août 2005, 20:36

Pjl, les fonctions de traitements de chaine en PHP m'ont suffit pour faire ce que je voulais, mais je vais jeter un oeil à ton lien ! :wink:

Et en fait j'ai retenu la solution initiale de Ripat, pour ne pas couper le mot en plein milieu :roll:

par Ripat » 16 août 2005, 15:44

Ca n'a pas l'air de gêner grand monde de couper un mot en plein milieu mais bon....:wink:

J'aime le culturisme coupé à 13 caractères va mettre de l'ambiance sur le site... \:D/

Je ne dis plus rien :arrow:

par pjl » 16 août 2005, 12:25

La question initiale était liée à MySQL et pas au PHP.

Tu trouveras ce qu'il te faut ici : http://www.nexen.net/docs/mysql/annotee ... ract%E8res

A priori, la fonction LEFT devrait convenir.

par Ripat » 15 août 2005, 17:27

J'ai suivi ton conseil en faisant encore plus simple :
echo substr($data['message'], 0,500);
Et voilà, cela ne me retourne que les 500 premiers caractères de mon texte,
Suffit effectivement si tu acceptes qu'un mot soit coupé en plein milieu.

par Twiny » 15 août 2005, 16:48

Quel imbécile, les fonctions de manipulations de chaînes m'étaient complètement sorti de la tête !

J'ai suivi ton conseil en faisant encore plus simple :
echo substr($data['message'], 0,500);
Et voilà, cela ne me retourne que les 500 premiers caractères de mon texte, c'est parfait ! :)

Merci beaucoup :D

par Ripat » 15 août 2005, 13:02

Je ne vois pas trop comment faire (simplement) dans une requête MySQL. Par contre PHP est particulièrement riche en fonctions de traitement de chaînes.

Vois du côté de substr(), strpos(), strlen()

Ou bien les regex, si tu aimes.

Une solution simple (mais pas optimale):
$chaine='Texte à couper, à une longueur plus ou moins fixe';

// position du premier espace qui suit le 25éme caractère
$pos = strpos($chaine, ' ', 25);

// coupure de la phrase
echo substr($chaine, 0, $pos);

Ne sélectionner que les 1er caractères d'un champ TEXT ?

par Twiny » 15 août 2005, 11:44

Bonjour,

j'ai effectué des recherches sur les différentes parties du forum mais je n'ai pas trouvé ma réponse, aussi je crée un nouveau sujet.

Ma table "messages" contient des informations relatives à des messages (titre, heure..) et notamment le message en lui meme, stocké dans la table dans un champ TEXT.
Je voudrais n'afficher que le début de chaque message sur une page, pour créer un lien qui renvoie au message en entier.

Seulement je ne sais pas comment faire avec le fonction SELECT pour limiter les caractères à selectionner. Faut il le faire avec cette fonction select ? Ou alors selectionner tout l'enregistrement et trouver un moyen de limiter l'affichage aux premiers caractères en php ou en html ?

Merci de prendre de votre temps :wink: