Limiter caractères affichés

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Limiter caractères affichés

Message le Lun Mai 08, 2006 20:45

Bonjour,

Voila j'aimerais afficher sur une page que les X premiers caractères contenus dans une table renfermant du texte.

Que dois je mettre dans ma requete ?

Merci d'avance


Bourriquet
WRInaute passionné
WRInaute passionné
 
Messages: 635
Inscription: Lun Sep 19, 2005 22:10

Message le Lun Mai 08, 2006 21:47

Code: Tout sélectionner
SELECT SUBSTRING(le_champ_texte,1,le_nom_de_caractere) AS extrait FROM table


Ca devrait marcher.

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Message le Lun Mai 08, 2006 21:54

merci
En fait j'ai trouvé select left après maus je n'arrive pas à l'intrégrer dans ma requete.

Je voudrai qu'au lieu de m'afficher tout le contenu de "texte", il lm'affiche disons les 20 premiers caractères. je sais pas ou et comment mettre SELECT LEFT.

Code: Tout sélectionner
$result = mysql_query("SELECT id_news, titre, texte FROM news ORDER BY date_news DESC LIMIT 5");

while ($row = mysql_fetch_assoc($result)) {
   foreach($row as $k => $r) {
      if (!empty($r)) {
         switch($k) {
case 'id_news':
echo '<a href="http://www.protection-des-animaux.org/actualites/archives-'.$r.'.html" class="liste_article_titre">';
            break;
    case 'titre':
               echo '-&nbsp;'.$r.'</a><br />';
            break;
case 'texte':
               echo '<div class="liste_article_texte">'.$r.'</div><br />';
            break;
           default :
echo '';           
         }

      }
}
echo '';
}


Bourriquet
WRInaute passionné
WRInaute passionné
 
Messages: 635
Inscription: Lun Sep 19, 2005 22:10

Message le Lun Mai 08, 2006 22:01

Code: Tout sélectionner
$result = mysql_query("SELECT id_news, titre, SUBSTRING(texte,1,20) as extrait FROM news ORDER BY date_news DESC LIMIT 5");

while ($row = mysql_fetch_assoc($result)) {
   foreach($row as $k => $r) {
      if (!empty($r)) {
         switch($k) {
case 'id_news':
echo '<a href="http://www.protection-des-animaux.org/actualites/archives-'.$r.'.html" class="liste_article_titre">';
            break;
    case 'titre':
               echo '-&nbsp;'.$r.'</a><br />';
            break;
case 'extrait':
               echo '<div class="liste_article_texte">'.$r.'</div><br />';
            break;
           default :
echo '';           
         }

      }
}
echo '';
}


Ca devrait fonctionner .


scores
WRInaute impliqué
WRInaute impliqué
 
Messages: 467
Inscription: Dim Nov 24, 2002 19:12

Message le Lun Mai 08, 2006 22:06

pourquoi tu ne limiterais pas au niveau de l'affichage php ?

if(strlen($post[texte]) > 50) {
$str_coupee = substr($post[texte], 0, 50);
$str_coupee .= "…" ;
echo "$str_coupee<br>";
}


Bourriquet
WRInaute passionné
WRInaute passionné
 
Messages: 635
Inscription: Lun Sep 19, 2005 22:10

Message le Lun Mai 08, 2006 22:09

scores a écrit:pourquoi tu ne limiterais pas au niveau de l'affichage php ?

if(strlen($post[texte]) > 50) {
$str_coupee = substr($post[texte], 0, 50);
$str_coupee .= "…" ;
echo "$str_coupee<br>";
}


Ca marche aussi scores, mais dans l'absolu, c'est pas top, parce que tu fais envoyer à MySQL des données inutiles. Imagine que son text c'est un document de 400 pages, et qu'il veut juste le début.

Le mieux est de limiter les transfert de données aux seules données utilisables.

Mais encore une fois, c'est une solution qui marche ;)

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Message le Lun Mai 08, 2006 22:11

Merci ça marche.
Par contre je viens de m'appercevoir que je dors debout, il y a un hic dans ce que je veux faire.

en fait il fudrait pas afficher les X premiers caractères mais les X premiers mots, je doute que ça soit possible.

Parce que la dans mes news, ça me coupe en plein milieu de mots... Ca le fait pas trop.


Bourriquet
WRInaute passionné
WRInaute passionné
 
Messages: 635
Inscription: Lun Sep 19, 2005 22:10

Message le Lun Mai 08, 2006 22:15

Dans ce cas tu peux combiner la requête et couper plus ou moins en php cette fois, de manière à obtenir rapidement un mot coupé après un espace.

Code: Tout sélectionner
$result = mysql_query("SELECT id_news, titre, SUBSTRING(texte,1,20) as extrait FROM news ORDER BY date_news DESC LIMIT 5");

while ($row = mysql_fetch_assoc($result)) {
   foreach($row as $k => $r) {
      if (!empty($r)) {
         switch($k) {
case 'id_news':
echo '<a href="http://www.protection-des-animaux.org/actualites/archives-'.$r.'.html" class="liste_article_titre">';
            break;
    case 'titre':
               echo '-&nbsp;'.$r.'</a><br />';
            break;
case 'extrait':
               echo '<div class="liste_article_texte">'.substr(0,strrpos($r,' ')).'</div><br />';
            break;
           default :
echo '';           
         }

      }
}
echo '';
}

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Message le Mar Mai 09, 2006 5:41

J'ai un soucis, le texte ne s'affiche plus du tout :(

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Message le Dim Mai 14, 2006 19:54

up

Jaunalgi
WRInaute impliqué
WRInaute impliqué
 
Messages: 293
Inscription: Mer Aoû 11, 2004 11:05

Message le Dim Mai 14, 2006 21:21

Protanim a écrit:J'ai un soucis, le texte ne s'affiche plus du tout :(


Remplace
substr(0,strrpos($r,' '))
par
substr($r,0,strrpos($r,' '))
dans le code que Bourriquet t'a donné.

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Message le Dim Mai 14, 2006 21:32

Merci c'est parfait !


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités