IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Afficher les 30 premiers caractères d'un texte [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut Afficher les 30 premiers caractères d'un texte
    Salut à tous,
    Je suis nouvelle en php et j'essaie de me débrouiller tant bien que mal.
    J'ai fait un script pour afficher les derniers commentaires de mes photos sous la forme :

    "les 30 premiers caractères du commentaire" par "auteur" le "date"

    ça marche, mais j'ai un problème.

    Je n'arrive pas à afficher les 30 premiers caractères, il y a tout qui s'affiche et parfois les commentaires sont très longs donc c'est assez moche visuellement.
    De même j'ai un souci pour la date. J'aimerais que ça affiche le jj/mm/aa à hh/mm et au lieu de ça, ça me mets par exemple 2007/05/14 09:52:58

    Je vous mets le script que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?
    // Definition des identifiants de connexion
    $DBHOST=''; // Serveur Mysql
    $USEBDD='MABDD'; // Base de donnée utilisée
    $USER='MABDD'; // Administrateur de la bdd
    $PASSWORD=''; // Mot de passe d'accès à la bdd
     
    // Connexion à MySQL :
    $link = mysql_connect($DBHOST,$USER,$PASSWORD);
    $db = mysql_select_db($USEBDD,$link);
     
    // Extraction 
    $requete="SELECT * FROM commalbum WHERE approuve='ok' ORDER BY id desc LIMIT 12";
    $result=mysql_db_query("MABDD",$requete);
     
    // Affiche resultats
    while($voir=mysql_fetch_array($result))
    {
    echo ". <a href=\"photos/img.php?id_img=$voir[idphoto]\" target=\"_self\">".$voir[comment]."</a><br>par -".$voir[nom]."- le ".$voir[date]."<br><br> 
    ";
    }
    ?>
    Merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour le format de la date tu peux le traiter dans la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date_format(date, 'le %d/%m/%y à %Hh%s') as date, comment, nom FROM
    Par contre DATE est un mot reservé mysql, il faut prendre l'habitude de ne pas l'utiliser comme nom de champ.

    Pour raccourcir le texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $comment_court = substr($row['comment'], 0, 30-strlen($row['comment']));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Pour obtenir les 30 premiers caractères, j'aurai plutôt dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = substr($texte, 0, 30);

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    J'ai l'art de me compliquer la vie
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Je pense que tu voulais dire en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $comment_court = substr($row['comment'], 0, min(30,strlen($row['comment'])));

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    Merci bcp, ça marche pour la date.

    Mais pour la longueur du texte, je ne sais pas où exactement il faut mettre le code :

    $comment_court = substr($row['comment'], 0, min(30,strlen($row['comment'])));

    Il ne se passe rien, j'ai l'impression d'avoir oublié un truc.

    Merci de votre aide.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Non, non il faut utiliser le premier code de sub0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row['comment'] = substr($row['comment'], 0, 30);
    @sub0 : non je voulais bien ecrire ça : je coupais par la droite la difference entre 30 et le nombre de caracteres de la chaine.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    D'accord.

    Quel est le code complet et à quelle ligne je dois le mettre ?

    Suis un peu perdue

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?
    // Definition des identifiants de connexion
    $DBHOST=''; // Serveur Mysql
    $USEBDD='MABDD'; // Base de donnée utilisée
    $USER='MABDD'; // Administrateur de la bdd
    $PASSWORD=''; // Mot de passe d'accès à la bdd
     
    // Connexion à MySQL :
    $link = mysql_connect($DBHOST,$USER,$PASSWORD);
    $db = mysql_select_db($USEBDD,$link);
     
    // Extraction 
    $requete="SELECT date_format(date, 'le %d/%m/%y à %Hh%s') as date, comment, nom commalbum, id_photo WHERE approuve='ok' ORDER BY id desc LIMIT 12";
    $result=mysql_db_query("MABDD",$requete);
     
    // Affiche resultats
    while($voir=mysql_fetch_array($result))
    {
    $comment_court= htmlspecialchars(substr($voir[comment], 0, 30));
    $nom = htmlspecialchars($voir[nom]);
    $date = htmlspecialchars($voir[date]);
    $idphoto = htmlspecialchars($voir[idphoto]);
     
    echo ". <a href=\"photos/img.php?id_img=$idphoto\" target=\"_self\">".$comment_court."</a><br>par -".$nom."- le ".$date."<br><br> 
    ";
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    merci mais y a carrément plus de commentaires qui s'affichent. Tout s'affiche sauf les commentaires. Il a compris qu'on n'affiche rien on dirait.

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?
    // Definition des identifiants de connexion
    $DBHOST=''; // Serveur Mysql
    $USEBDD='MABDD'; // Base de donnée utilisée
    $USER='MABDD'; // Administrateur de la bdd
    $PASSWORD=''; // Mot de passe d'accès à la bdd
     
    // Connexion à MySQL :
    $link = mysql_connect($DBHOST,$USER,$PASSWORD);
    $db = mysql_select_db($USEBDD,$link);
     
    // Extraction 
    $requete="SELECT date_format(date, 'le %d/%m/%y à %Hh%s') as date, comment, nom, id_photo WHERE approuve='ok' ORDER BY id desc LIMIT 12";
    $result=mysql_db_query("MABDD",$requete);
     
    // Affiche resultats
    while($voir=mysql_fetch_array($result))
    {
    $comment_court= htmlspecialchars(substr($voir['comment'], 0, 30));
    $nom = htmlspecialchars($voir['nom']);
    $date = htmlspecialchars($voir['date']);
    $idphoto = htmlspecialchars($voir['idphoto']);
     
    echo ". <a href=\"photos/img.php?id_img=$idphoto\" target=\"_self\">".$comment_court."</a><br>par -".$nom."- le ".$date."<br><br> 
    ";
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    Alors là ça marche, mais l'idphoto ne s'affiche plus et puis, ça coupe net. Je crois qu'il y a un moyen pour que ça affiche ... (trois petits points) après 30 caractères mais je ne sais plus. Désolée, je t'embête

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu pourrais reperer quand je fais des fautes de frappe : j'ai mis id_photo au lieu de idphoto dans la requete.

    Pour les "..." c'est tout simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $comment_court= htmlspecialchars(substr($voir['comment'], 0, 30)) . "...";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    Au temps pour moi.
    Merci bcp, ça marche nickel.
    Encore merci, t'es très sympa.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher les n premiers caractères d'un terme
    Par Flynt dans le forum jQuery
    Réponses: 2
    Dernier message: 11/02/2010, 16h46
  2. Afficher les 200 premiers caractère
    Par jerem721 dans le forum Langage
    Réponses: 2
    Dernier message: 31/08/2008, 16h54
  3. Afficher les 20 premiers caractères
    Par marty499 dans le forum Langage
    Réponses: 1
    Dernier message: 07/05/2008, 16h07
  4. Réponses: 2
    Dernier message: 04/10/2007, 11h31
  5. afficher les n premiers caractères d'un champs
    Par kabool dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/03/2006, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo