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 :

empêcher l'affichage répété du sujet [MySQL]


Sujet :

PHP & Base de données

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Points : 57
    Points
    57
    Par défaut empêcher l'affichage répété du sujet
    Bonjour,
    j'ai trouvé un forum permettant d'afficher les réponses à chaque question sur une page séparée. En pratique, chaque sujet de la page principale comporte le lien suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<a href="./lire_sujet.php?id_sujet_a_lire=' , $data['id'] , '">' , stripslashes(htmlentities(trim($data['titre']))) , '</a>';
    et dans la page lire_sujet.php la variable $_GET['id_sujet_a_lire'] correspond à l'id du sujet en question.

    Le système fonctionne, mais je souhaiterais apporter une petite amélioration : afficher en haut de la page lire_sujet.php le titre du sujet. J'ai donc arrangé mon code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sql = 'SELECT auteur, titre, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';
     
    $req = mysql_query($sql) or die('Erreur SQL !<br />
    while ($data = mysql_fetch_array($req)) { ?>
     
          <p>Sujet : <?php echo stripslashes(htmlentities($data['titre'])); ?> </p>
                <p> Auteur : <?php echo stripslashes(htmlentities(trim($data['auteur'])));
    ?>
    <br /> Message :
      <?php
            echo nl2br(stripslashes(htmlentities(trim($data['message']))));
       } ?>
    Ma question : comment faire pour que le mot "Sujet :" n'apparaisse effectivement qu'en haut de la page et pas à chaque fois qu'une réponse est ajoutée ?

    Merci d'avance de votre aide !

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Points : 220
    Points
    220
    Par défaut
    tu utilises un boolean!


    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
     
    $sql = 'SELECT auteur, titre, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';
     
    $req = mysql_query($sql) or die('Erreur SQL !<br />');
    $sujet_afficher = false;
    while ($data = mysql_fetch_array($req)) { 
       if (!$sujet_afficher)
       {
          echo "<p>Sujet :" . stripslashes(htmlentities($data['titre'])); . "</p>";
          $sujet_afficher = true;
        }
        ?>
                <p> Auteur : <?php echo stripslashes(htmlentities(trim($data['auteur'])));
    ?>
    <br /> Message :
      <?php
            echo nl2br(stripslashes(htmlentities(trim($data['message']))));
       } ?>

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Points : 57
    Points
    57
    Par défaut
    nickel, ça marche !
    au début j'avais un message d'erreur, c'est juste qu'il y avait un ; de trop :
    echo "<p>Sujet :" . stripslashes(htmlentities($data['titre'])); . "</p>";

    merci beaucoup
    Mathieu

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Points : 57
    Points
    57
    Par défaut bis...
    j'ai le même problème sur une autre page et j'arrive pas à refaire le coup du booléen...

    Cette fois c'est pour la mise en place d'une newsletter : je vais chercher dans ma table mysql des champs appelés "chapitre1", "chapitre2", "chapitre3", etc., et je n'affiche d'abord que les 200 premiers caractères de chaque chapitre (cf. "substr"). Ensuite je fais un lien vers l'article complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php $chapitre1 = nl2br(stripslashes(trim($donnees['chapitre1'])));
    echo substr($chapitre1,0,200);
    echo '<a href="acticle1-complet.php?suite=' . $donnees['id'] . '">'; ?>  lire la suite</a>
    Mon problème : comment faire pour que le lien "lire la suite" n'apparaisse pas lorsque le chapitre en question n'existe pas ??

    Merci d'avance !

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Points : 220
    Points
    220
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if (trim ($chapitre1))
    {
      $chapitre1 = nl2br(stripslashes(trim($donnees['chapitre1'])));
      echo substr($chapitre1,0,200);
      echo '<a href="acticle1-complet.php?suite=' . $donnees['id'] . '">lire la suite</a>';
    }
    ?>

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Points : 57
    Points
    57
    Par défaut
    merci coca25, mais maintenant ni le lien ni le chapitre ne s'affiche
    j'ai essayé avec le chapitre 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <p><?php
    if (trim ($chapitre3))
    {
      $chapitre3 = nl2br(stripslashes(trim($donnees['chapitre3'])));
      echo substr($chapitre3,0,200);
      echo '<a href="acticle3-complet.php?suite=' . $donnees['id'] . '">lire la suite</a>';
    }
    ?> </p>
    et quand je saisis un texte pour 'chapitre3', rien n'apparaît...

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Points : 220
    Points
    220
    Par défaut
    autant pour moi, j'avais mal lu, il faut tester apres avoir rempli la variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <p><?php
    $chapitre3 = nl2br(stripslashes(trim($donnees['chapitre3'])));
    if (trim ($chapitre3))
    {
      echo substr($chapitre3,0,200);
      echo '<a href="acticle3-complet.php?suite=' . $donnees['id'] . '">lire la suite</a>';
    }
    ?> </p>
    la ca devrait aller

  8. #8
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Points : 57
    Points
    57
    Par défaut
    bien vu
    merci merci merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/11/2022, 11h32
  2. [forms 10g] Empêcher l'affichage d'un message
    Par phicault dans le forum Forms
    Réponses: 5
    Dernier message: 11/06/2007, 15h51
  3. [PostGreSQL] Empêcher l'affichage de message d'erreur
    Par FapInfo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/04/2007, 11h27
  4. Réponses: 1
    Dernier message: 23/08/2006, 14h26
  5. [WebBRowser] Empécher l'affichage du texte de sécurité
    Par Rayek dans le forum Web & réseau
    Réponses: 2
    Dernier message: 07/04/2006, 09h06

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