Tronquer l'affichage d'un champ

Eléphanteau du PHP | 37 Messages

26 oct. 2005, 15:43

bonne après midi,

voici le code et je progresse puisque d'un message d'erreur je suis passé à un blanc, ça n'affiche rien à l'emplacement prevue... lorsque je met une phrase entre guillemets la fonction fonctionne (sic).
// on créer la requete SQL et on l'envoie 
$sql = "SELECT *,DATE_FORMAT(date,'%d.%m.%Y') AS datefr FROM crij_actu ORDER BY id DESC LIMIT 0,5"; 

// on envoie la requete 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrements 
while($data = mysql_fetch_array($req));
{
// on affiche les informations de l'enregistrements en cours 
function Tronquer_Texte($texte, $longeur_max)
{
    if (strlen($texte) > $longeur_max)
    {
    $texte = substr($texte, 0, $longeur_max);
    $dernier_espace = strrpos($texte, "");
    $texte = substr($texte, 0, $dernier_espace)."(...)";
    }

    return $texte;
}


echo Tronquer_Texte($data['texte'], 20);
    } 
// on ferme la connexion à mysql 
mysql_close(); 
?>
:roll: =;

Eléphanteau du PHP | 37 Messages

31 oct. 2005, 16:14

Bonjour,
quelqu'un peut-il me dire ou se trouve l'erreur dans le code ci-dessus car cela ne m'affiche rien (pas même un message d'erreur... :lol: )
n'y a t'il pas un probleme entre le $texte de la fonction et le $data['texte'] de ma BdD ?
:roll:

Eléphant du PHP | 134 Messages

02 nov. 2005, 01:56

Salut !!

faudrait peut etre eviter de declarer ta fonction dans ta boucle while :wink:

et puis essaie de faire
echo $data['texte'];
pour voir deja si t'as bien quelque chose dans ta variable.

Mammouth du PHP | 19672 Messages

02 nov. 2005, 09:29

L'erreur est peut-être bien dans ta fonction:
//...
$dernier_espace = strrpos($texte, "");
//...
Tu cherches là une chaine vide, même pas un espace. Corrigé:
//...
$dernier_espace = strrpos($texte, " ");
//...
Et effectivement, il faut sortir la fonction de la boucle:
<?php
function Tronquer_Texte($texte, $longeur_max)
{
    if (strlen($texte) > $longeur_max)
    {
        $texte = substr($texte, 0, $longeur_max);
        $dernier_espace = strrpos($texte, " ");
        $texte = substr($texte, 0, $dernier_espace)."(...)";
    }
    return $texte;
}

// on cr&eacute;er la requete SQL et on l'envoie
$sql = "SELECT *,DATE_FORMAT(date,'%d.%m.%Y') AS datefr FROM crij_actu ORDER BY id DESC LIMIT 0,5";

// on envoie la requete
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrements
while($data = mysql_fetch_array($req));
{
    // on affiche les informations de l'enregistrements en cours
    echo Tronquer_Texte($data['texte'], 20);
}
// on ferme la connexion à mysql
mysql_close();
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 37 Messages

02 nov. 2005, 17:35

:D un grand merci à tous !