Tronquer l'affichage d'un champ

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 : Tronquer l'affichage d'un champ

par resistenz76 » 02 nov. 2005, 17:35

:D un grand merci à tous !

par Cyrano » 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();
?>

par Devether » 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.

par resistenz76 » 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:

par resistenz76 » 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&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 
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: =;

par zeus » 26 oct. 2005, 08:48

Pas besoin de mettre ta variable dans une chaine de carctères, tu peut l'envoyer directement.
Essaye plutot comme ça :
echo Tronquer_Texte($data['texte'], 20);

par resistenz76 » 26 oct. 2005, 08:46

Bonjour,
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/users2/c/www/index2.php on line 56
la ligne 56 correspond à
echo Tronquer_Texte("$data['texte']", 20);
(j'ai essayé avec les points les guillements et sans les apostrophes...) :)

par zeus » 25 oct. 2005, 17:05

Je ne me suis pas trompé.
Quand tu as posté ta question dans ce thread, je l'ai découpé dans un autre message pour ne pas mélanger vos questions et j'ai laissé un lien dans ce message pour qu'on puisse retrouver ce post.

Quand tu as posté un 2nd message, je t'ai renvoyé sur l'autre post pour te signifier que je l'avais créé.

Je te demande donc de poser tes questions dans l'autre post, celui créé pour toi ;)

par kalivan » 25 oct. 2005, 17:00

Modération : si tu es l'invité qui a posté le même message tout à l'heure, suit ce lien :
http://www.phpfrance.com/forums/voir_sujet-10049.php
Excuse moi mais j'ai oublié de le noter ici :oops:
heu je crois que tu t'est trompe lol (autant c'est moi)

ce lien ce dirige vers vers le post "invite" que j'ai cree sans faire expres :/ et le liens du post "invite" me renvois ici.

je fais donc l'ascenseur entre les 2 post sans trouvé ma solution lol

merci ;)

par helix » 25 oct. 2005, 16:50

j'avoue que j'ai essayé betement de copier coller le code affiché plus haut dans ma page en remplaçant
"Voici un exemple de texte tronqué."
par
'.$data['texte'].'
en priant St Péagepé que cela fonctionne...
Essaie en remplaçant
"Voici un exemple de texte tronqué."
par
$data['texte']
sans la ponctuation autour, ça devrait mieux marcher.

par zeus » 25 oct. 2005, 16:27

Modération : si tu es l'invité qui a posté le même message tout à l'heure, suit ce lien :
http://www.phpfrance.com/forums/voir_sujet-10049.php
Excuse moi mais j'ai oublié de le noter ici :oops:

par kalivan » 25 oct. 2005, 15:46

bonjour,

alors, ^^ j'ai sensiblement le meme probleme.

voila ce que je cherche. je tiens avant tout a presicer que je suis debutant en php.

dc ... :D :D

voila mon shema de page...

une page d'administration avec ds celle-ci un formulaire avec :
nom
date
et texte

lorsque on valide, les données sont inscrite dans la BDD qui devrons ensuite apparaitre ds la premiere page (index).

cette news ne devra afficher que 300 caracteres. a la fin de ces 300Caracteres il y aurais un bouton "lire la suite" qui, en appuyant devra afficher le reste de la news.

vous m'avez bien comrpis ? lol

En vous remerciant d'avance ;)

par zeus » 25 oct. 2005, 11:34

lequel ? J'ai cassé ma boule de crystal hier soir et je ne devine pas les erreurs ;) :lol:

par resistenz76 » 25 oct. 2005, 11:32

à un message d'erreur...

par zeus » 25 oct. 2005, 11:22

Et en faisant ça, tu arrives à quoi ?