Page 1 sur 1

Limiter le nombre de caractères à l'affichage

Posté : 19 juin 2005, 17:12
par Pascal
Bonjour,

Dans cette ligne de code :
$select = "SELECT date,nom,titre,commentaire FROM ma_table ORDER BY date DESC LIMIT 10";
Je souhaite afficher les 100 premiers caractères du champs "commentaire".
J'ai modifié comme ci-dessous, mais ça ne fonctionne pas.
$select = "SELECT date,nom,titre,CONCAT(SUBSTRING_INDEX(commentaire,' ',100),' . . .') FROM ma_table ORDER BY date DESC LIMIT 10";
Merci de votre aide svp,
à bientôt
Pascal

Posté : 21 juin 2005, 16:03
par ouckileou
oulà ça a l'air bien compliqué :)
$select = "SELECT date,nom,titre,SUBSTRING(commentaire,1,100) FROM ma_table ORDER BY date DESC LIMIT 10";
dis-nous ce que ça donne avec cette requête

édition : sinon tu peux aussi faire ça en PHP avec printf ou sprintf

l

Posté : 22 juin 2005, 20:15
par Pascal
Bonsoir et merci pour ta réponse, mais ça ne fonctionne pas.

Ci-dessous le script complet :
<?
//connection à la base
include("dossier/conf.php");

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

// requête SQL qui compte le nombre total d'enregistrements dans la table et les recupere
$select = "SELECT date,nom,titre,SUBSTRING(commentaire,1,100) FROM ma_table ORDER BY date DESC LIMIT 10";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

// Affichage du résultat.
if($total) {
    // debut du tableau
        echo '<table>'."\n";
        echo '<tr>';
        echo '<td>Commentaire</td>';
        echo '</tr>'."\n";
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td>'.$row['date'].''.$row['titre'].'<br>'.$row['commentaire'].'<br>'.$row['nom'].'</td>';
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// Liberation du resultat
mysql_free_result($result);
?>
Je vais également consulter le lien que tu me fournis.
A bientôt

Extraire les x premiers caractères d'un texte

Posté : 22 juin 2005, 20:26
par Pascal
En fait, je ne souhaite pas extraire x caractères d'un mot mais un nombre défini, par exemple les 100 premiers caractères, du contenu textuel d'un champs de table dans une base mysql.

:)

Posté : 22 juin 2005, 20:35
par pascaltje
Dans ton code de lecture de l'enregistrement, l'élément $row['commentaire'] n'existe pas.

dans la requete, il faut le creer via un alias de résultat:
$select = "SELECT date,nom,titre,SUBSTRING(commentaire,1,100) AS commentaire FROM ma_table ORDER BY date DESC LIMIT 10"; 
et maintenant cet élément existe.

A+

Pascal

Posté : 22 juin 2005, 22:51
par Pascal
Ah, évidemment !... Maintenant ça fonctionne ! Merci à toi, je vais regarder ça de plus près dans les tutoriaux afin de mieux comprendre.

A bientôt sur PHPFrance :D