Version complète: sur le forum Webmaster Hub : Limiter le nombre de caractere du resultat d'une requete
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
gontran
Bonjour le Hub,

CODE
$reqpar=mysql_query("select nom, description from annuaire where partenaire='1'")


Je voudrais limiter a 50 caractere le resultat de la requete pour le champ description...

Merci pour votre aide
captain_torche
Je ne sais pas si c'est possible en SQL, mais en PHP, la fonction substr() est faite pour ça.
gontran
Merci captain, je vais regarder ca de plus près
NorSeb
Bonjour,

J'utilise une expression réguliere qui permet de ne pas couper au milieu d'un mot :

Si $texte est la chaine à "couper" :
CODE
$nbcar = 50;
if (strlen($texte) > $nbcar) {
    $extrait_texte = ereg_replace("(.{".$nbcar."})( .*)$","\\1 ...", $texte);
}
else {
    $extrait_texte = $texte;
}
gontran
en effet j'avais mis en place la solution de captain mais ca coupe les mots

je vais essayre la tienne...

merci
gontran
merci norseb

ca fonctionne parfaitement...

a bientot
petit-ourson
Pour mysql, il existe la fonction substring

CODE
SUBSTRING(str,pos,len)

http://mysql.com/doc/refman/5.0/en/string-functions.html
gontran
ok mais avec la solution ca fonctionne parfaitement

merci
Rikle_S
Bonjour,
J'inaugure le premier poste par ici smile.gif

Je cherche à faire la meme chose, mais je ne vois pas du tout par quoi remplacer $texte.

Serait il possible d'avoir un peu plus d'explication.

Je précise, on est pas marié phph et moi, on vient de se rencontré... tongue.gif
Wolf18
$texte est la chaîne de caractères que tu veux tronquer (si elle dépasse 50 caractères dans notre exemple).

Essayes avec une phrase au hasard :
CODE
$texte = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque lobortis felis id sem. Mauris ut pede eget tortor condimentum elementum. Aliquam lacinia. Donec pulvinar felis.";


Tu ajoutes ensuite le code ci-dessus en rajoutant à la fin un echo :

CODE
echo $extrait_texte;
ASC
<?php

//TRANSFORMER EN FONCTION

function nocut_word( $src, $nb )
{
if ( strlen( $src ) > $nb ) {
$extrait_texte = ereg_replace( "(.{" . $nb . "})( .*)$","\\1 ...", $src );
}else {
$extrait_texte = $src;
}
return $extrait_texte;
}

//EOS.

#Pour utilisation tu écriras :
nocut_word( $icimontext, $icilenombredecaracteres );

?>

Cdlt.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.