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

Langage PHP Discussion :

Réduire les caractères d'un article de ma bdd avec substring [PHP 7]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Points : 13
    Points
    13
    Par défaut Réduire les caractères d'un article de ma bdd avec substring
    Bonjour,

    Je souhaite afficher quelques lignes d'un article sur ma page d'accueil et lorsqu'on clic dessus, l'article en question s'affiche en entier dans une autre page.

    Tout est bon SAUF la réduction de l'article réduit sur ma page d'accueil. Je m'embrouille avec mes fonctions et avec le code HTML, pouvez vous m'aider s'il vous plaît.

    J'ai une fonction pour récupérer mes actualités :
    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
    //FONCTION QUI RECUPERE L'ACTUALITE 1 sur la page d'accueil
    function getActualite1()
    {    
        require 'bdd.php';
        $req = $bdd->prepare('SELECT * FROM articles WHERE categories_id = 16');
        $req->execute();
        $data = $req->fetchAll(PDO::FETCH_OBJ);
        return $data;
      $req->closeCursor();
     } 
     
    Coté HTML ca donne :
     
    <article class="actualite actualite_photo_gauche">
     
                        <?php foreach($actualites1 as $actualite1): ?>
     
                    <a href="accueil_actualite.php">
                            <h2 class="article_titre"><?= $actualite1->titre ?></h2>
                            <img class="photo_gauche" src="images/peche.jpg" alt=""/>
                            <p class="actualite1 article_contenu">
                                <?= $actualite1->contenu ?></p>
     
                        <?php endforeach; ?>
                </article>
    Après j'ai également une fonction pour réduire l'article récupéré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //FONCTION POUR COUPER LE TEXTE DES ACTUALITES
    function raccourcirChaine($chaine, $tailleMax)
      {
     
        if( strlen($chaine) >= $tailleMax )
        {
          $chaine = substr($chaine,0,$tailleMax);
          $positionDernierEspace = strrpos($chaine,' ');
          $chaine = substr($chaine,0,$positionDernierEspace).'...';
        }
        return $chaine;
      }
    Je n'arrive pas, je ne sais pas comment placer ses bouts de codes, j'ai essayé plusieurs choses, du style :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <article class="actualite actualite_photo_gauche">
     
                        <?php foreach($actualites1 as $actualite1): ?>
                            $chaine1 = $actualite1;
                    <a href="accueil_actualite.php">
                            <h2 class="article_titre"><?= $actualite1->titre ?></h2>
                            <img class="photo_gauche" src="images/peche.jpg" alt=""/>
                            <p class="actualite1 article_contenu">
                                <?= $actualite1->contenu 
                                echo substr($actualite1, 0, 100); ?></p>
     
     
                        <?php endforeach; ?>
                </article>
     
    J'ai également essayé de modifier ma fonction qui appel mes actualites :
    //FONCTION QUI RECUPERE L'ACTUALITE 1 sur la page d'accueil
    function getActualite1()
    {    
        require 'bdd.php';
        $req = $bdd->prepare('SELECT * FROM articles WHERE categories_id = 16');
        $req->execute();
        $data = $req->fetchAll(PDO::FETCH_OBJ);
     
        $tailleMax = 100;
        if( strlen($data) >= $tailleMax )
        {
          $data = substr($data,0,$tailleMax);
          $positionDernierEspace = strrpos($data,' ');
          $data = substr($data,0,$positionDernierEspace).'...';
        }
        return $data;
     } 
        /*
        echo substr($data, 0, 150).'...';
        return $data;
        $req->closeCursor();*/
    Merci

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <article class="actualite actualite_photo_gauche">
    <?php foreach($actualites1 as $actualite1):?>
       <h2 class="article_titre"> <?php echo $actualite1->titre; ?></h2>
       <img class="photo_gauche" src="images/peche.jpg" alt="photo de peche" />
       <p class="actualite1 article_contenu">
           <?php echo raccourcirChaine($actualite1->contenu, 100); ?>
       </p>
    <?php endforeach; ?>
    </article>

  3. #3
    Membre à l'essai
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Merci Dendrite, ca marche très bien.

    J'ai vraiment chercher la difficulté ou elle n'était pas !!!! J'ai souvent du mal à appliquer ce genre de cas et à savoir ou les placer dans le html.

    Aurais tu des vidéos à me suggerer pour mieux comprendre ?

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Des vidéos, non, je ne connais pas.
    Je ne suis pas spécialement friande des tutos vidéos. Les goûts et les couleurs. J'ai un bon rapport à l'écrit, qui à mon avis, génère moins de bruit, de friture inutile. Mais je comprends qu'on ait besoin d'un prof plus naturel que l'écrit pur.

    J'ai par contre une méthode à te recommander.
    Compartimenter.
    Si tu démarres, je pense que tout découvrir en même temps et tout mélanger n'est vraiment pas aisé.
    Il faut que tu fractionnes, car ce sont des technos très différentes :
    Je mets les durées minimum à titre indicatif pour les grands débutants. Qui font des TP et mettent les mains dans le cambouis et ne se contentent pas de copier coller.

    le HTML et la CSS ie affichage dans navigateur client (1 semaine d'études et de pratique minimum)
    le SQL ie données persistantes sur serveur (2 semaines d'études et de pratique de PHPmyadmin minimum)
    le PHP côté serveur qui sert à générer dynamiquement les 2 technos précédentes (1 mois de travail minimum si l'on découvre la programmation, les variables, les fonctions, les boucles, les conditions etc.)

    A ta place, je chercherais des tutos (donc vidéos puisque c'est ton goût) séparés.

    En tapant un truc dans Youtube, du genre "Débuter HTML 5" et "Débuter CSS3", "Débuter SQL", "Débuter PHP procédural'...
    Dans quel ordre ? Précisément celui que j'ai mis. Pour poser la première couche... après tu prendras l'habitude de composer les 3 technos... mais moi, je préfère toujours compartimenter.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Merci pour tes conseils, je prend des cours à distance et je n'ai que quelques bases justement très compartimentés. Mon soucis est d'arriver à comprendre comment tout cela s'imbrique les uns avec les autres, je n'ai fais que de la théorie avec des exercices par matière. Le html et css, ca va. J'ai du mal à appliquer le php seul et encore plus de mal quand il y a un coté dynamique et qu'il faut intégrer le php dans le html...j'imagine qu'à force de rencontrer ce genre de problème je vais y arriver.

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Bon, ce n'est pas un tuto vidéo. Mais essaie mon tuto PHP. Il est assez efficace pour les débutants, sauf pour la partie base de données, qui est obsolète...

    Si tu veux faire tout le tuto, commence par là.
    https://sylvie-vauthier.developpez.c...?page=intro#LI

    Sinon, la partie qui répond davantage à ta problématique

    https://sylvie-vauthier.developpez.c...e=fondamentaux

    edit : Et c'est tes cours à distance qui te proposent le code que tu nous as montré ? Je te demande ça, parce qu'il a une syntaxe asp.net, ça s'appelle aussi des short tags, et ça n'est donc pas du tout souhaitable pour débuter.
    Je fais allusion à ça :
    tandis que l'écriture souhaitable pour savoir ce qu'on fait surtout si on débute est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $variable; ?>
    Tu comprends évidemment avec cette dernière syntaxe que tu ouvres des balises PHP, que tu affiches une variable PHP (mieux vaut qu'elle soit conforme à ton HTML puisqu'elle va s'y intégrer) et enfin, que tu fermes la balise PHP.
    L'écriture asp, c'est bon pour les développeurs déjà à l'aise.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Oui dans les cours, ils nous parlent de raccourcis... je vais arrêter de m'en servir !!
    Merci pour tes liens, je vais aller voir ca tout de suite !

  8. #8
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,

    <?= est quand même standard (toujours dispo depuis 5.4) ou on a pas la même définition de standard.

  9. #9
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    OK Willy, on oublie standard pas standard.
    Mais on reste sur le fond en se mettant deux secondes dans la peau de Devo :
    Le signe = en PHP :
    Déjà, c'est bizarre pour les affectations
    Aujourd'hui encore, je me dis $variable "reçoit" 4, pour bien comprendre l'ordre d'affectation.
    Ensuite, bien se rappeler que pour les comparaisons, la syntaxe est un peu piégeuse avec le double égal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($variable==4){
       echo 'On va quadrupler !';
    }
    Et là je me dis bien si $variable "égal" 4
    Alors pas besoin d'ajouter un truc qui n'a rien à voir, mais qui est porté par le signe =, et qui signifie affiche ! En aucun cas dans un cours pour débutants.
    Et pis quoi encore ? "=" peut aussi vouloir résumer : "Salut les gars, je m'appelle Gaston et je suis de Briançon." ?

    Alors bien sûr que si des enseignants dont la pédagogie et la didactique devraient être le métier, ne comprennent pas qu'ils doivent présenter les informations dans un certain ordre pour qu'elles soient assimilées, c'est bien dommage !
    L'enseignement, comme l'informatique, c'est pas : "Je pose tout en tas et les gens se démerderont."

    edit : Willy, j'ai viré "pas standard" de mon message précédent. OK.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Voir la DOC :



    echo dispose aussi d'une version courte, où vous pouvez faire suivre la balise PHP ouvrante d'un signe égal (=).
    Avant PHP 5.4.0, cette syntaxe n'était possible que si la directive de configuration short_open_tag était activée.
    Dernière modification par Invité ; 13/05/2018 à 19h08.

  11. #11
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    jreaux m'a tuer (deux fois en dix jours). C'est trop.

  12. #12
    Invité
    Invité(e)
    Par défaut
    C'est toujours une bonne habitude de fournir des liens vers la DOC (officielle) ou les tutos.
    Dernière modification par Invité ; 13/05/2018 à 19h09.

  13. #13
    Membre à l'essai
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Bonjour Dendrite,

    Je suis allé voir ton tuto sur les fondamentaux de php pour les grands débutants, ca m'a permis de réviser quelques points et notamment les quotes et doubles quotes.

    Je pense que j'ai un problème avec ca justement, j'ai une bdd pour mes images, je les enregistrent via un formulaire, j'ai un mode édition égal à 0 pour les nouvelles photos, et un mode édition égal à 1 pour les modifications et je n'arrive pas à placer correctement mon "value" et les quotes je pense.
    Voici mon code et ma pseudo logique ..... il reste une fermeture de balise html qui reste afficher sur mon écran />, mais dès que je touche à quelque chose, ca ne fonctionne plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!--value=" : j'ouvre mon php / si ma variable ($mode_edition == 1) alors j'ouvre mon accolade et je referme mon php-->
          <input type="file" name="image" ><?php if($mode_edition == 1){?>
     
            <img src="../images/<?php echo $edit_image->image ?>" width="200" <?php } ?> />
            <!--j'ouvre ma balise image et je mets les doubles quotes pour la src, je lui donne le début du chemin à suivre, puis j'ouvre php pour aller rechercher mon image dynamiquement et je referme les double quotes. je referme l'accolade en rouvrant une balise php, puis je remets des doubles quotes pour fermer mon value
             -->

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Fais les exercices proposés dans le tuto.
    Il te manque les bases.

    Et pour te répondre : l'accolade fermante est mal placée.

    Pense à regarder le code HTML généré. ("Ctrl" + "U")

    Quant au "Bonjour Dendrite", merci pour les autres....
    Dernière modification par Invité ; 14/05/2018 à 19h49.

  15. #15
    Membre à l'essai
    Femme Profil pro
    Création sites web
    Inscrit en
    Novembre 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Création sites web

    Informations forums :
    Inscription : Novembre 2016
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Hello Jreaux62,
    je ne voulais pas vexer, je voulais préciser que je répondais à dendrite sur son commentaire.....,
    et je vais reprendre les exercices une nouvelle fois.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/03/2013, 17h17
  2. [PDO] Echapper les caractères potentiellement dangereux pour une requête SQL avec LIKE
    Par JimDraw dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 17/12/2012, 11h46
  3. Réponses: 7
    Dernier message: 12/05/2003, 23h50
  4. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 10h23
  5. [PostgreSQL] Les caractères accentués ?
    Par yacomor dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2003, 17h30

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