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 :

Comment afficher le contenu de sa bd page par page


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Par défaut Comment afficher le contenu de sa bd page par page
    Salut a tous je me nomme kone kader je suis un gros debutant en programmation php et je recherche de l'aide.
    en effet j'ai concu une bd article qui a pour propriete id, titre ,article,et date .
    maintenant je veux integrer un systeme de pagination qui permet afficher mes articles avec leur titre et date page par page(5 par page) .
    le scripte que j'ai tape ne m'affiche pas d'erreur mais le contenu de mon article de s'affiche pas



    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
     
    // Connexion à la base de données
     
    try
     
    {
     
        $bdd = new PDO('mysql:host=localhost;dbname=kone;charset=utf8', 'root', 'root');
     
    }
     
    catch(Exception $e)
     
    {
     
            die('Erreur : '.$e->getMessage());
     
    }
    ?>
    <?php
    $taille=2;
    if (isset($_GET['page'])) {
        $page=$_GET['page'];
    }else{
        $page=0;
    }
     
    $offset=$taille*$page;
    ?>
    <?php
    // On récupère les 5 derniers articles
     
    $req =$bdd->prepare('SELECT id_article, titre, article, DATE_FORMAT(date_article, \'%d/%m/%Y à %Hh%imin%ss\') AS date_article_fr FROM articles ORDER BY date_article DESC LIMIT $taille offset $offset');
    $req->execute();
     
    while ($donnees = $req->fetch())
    {
    ?>
     
    <div class="forum">
        <div class="tete">
         <b><?php echo htmlspecialchars($donnees['titre']); ?></b>
         <em>le <?php echo $donnees['date_article_fr']; ?></em>
        </div>
        <div><?php echo nl2br(htmlspecialchars($donnees['article'])); ?></div>
        <div><a href="commentaire.php?articles=<?php echo $donnees['id_article']; ?>">Commentaires</a></div>
    </div>
     
    <?php
     
     }// Fin de la boucle des articles
     
    $req->closeCursor();
     
    ?>
    <?php
    //deuxieme reqette pour determiner le nb de page
    $req2=$bdd->prepare('SELECT count(id_article) AS nb_article FROM articles');
    $req2->execute();
    $ligne=$req2->fetch(PDO::FETCH_ASSOC);
    $nb=$ligne['nb_article'];
    $np=floor($nb/$taille);
    ?>
    <div>
        <ul class="nav nav-pills">
            <?php for ($i=0; $i < $nb; $i++){?>
                <li class="<?php echo(($i==$page)?'active':'')?>">
                    <a href="forum.php?page=<?php echo ($i)?>">page <?php echo($i)?></a>
                </li>
                <?php 
            }
            ?>
        </ul>
    </div>

    AIDEZ MOI SIL VOUS PLAIS

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 583
    Par défaut
    Salut,

    Test ta requête dans phpmyadmin tu fais un echo de celle-ci.

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


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req =$bdd->prepare('SELECT .... LIMIT $taille offset $offset');
    Pour que les variables PHP puissent être interprétées, il faut utiliser des guillemets (double-quotes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req =$bdd->prepare("SELECT .... LIMIT $taille OFFSET $offset");
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req =$bdd->prepare('SELECT .... LIMIT '.$taille.' OFFSET '.$offset);

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Par défaut
    je vous remercie énormément pour votre générosité, ce lien m'a fait du bien
    cependant jai essaye les deux methodes mais mon contenu ne s'affiche toujours pas .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req =$bdd->prepare('SELECT id_article, titre, article, DATE_FORMAT(date_article, \'%d/%m/%Y à %Hh%imin%ss\') AS date_article_fr FROM articles ORDER BY date_article DESC LIMIT'.$taille.'OFFSET'.$offset);
    $req->execute();
    quand j'enleve la derniere condition (LIMIT .........) le contenu s'affiche sans probleme. je penses que l'erreur se trouve a ce niveau.
    merci d'avance

  5. #5
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Il manque les espaces :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req =$bdd->prepare('SELECT ... LIMIT '.$taille.' OFFSET '.$offset);
    //...................................^...........^......^

    Tu peux examiner ta requête avec un echo si tu la mets dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = 'SELECT id_article, titre, article, DATE_FORMAT(date_article, "%d/%m/%Y à %Hh%imin%ss") AS date_article_fr FROM articles ORDER BY date_article DESC LIMIT '.$taille.' OFFSET '.$offset;
    echo $query;
    $req = $bdd->prepare($query);
    $req->execute();
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Par défaut
    je vous remercie enorment .
    enfin jai pu resoudre le probleme .
    le soucis se trouvait au niveau de l'espacement comme indique par M.watilin.
    je remercie toute personne qui m'a donne un peu de son temps tres presieux.
    cependant j'aimerais savoir la difference entre ces deux manieres de coder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req =$bdd->prepare('SELECT id_article, titre, article, DATE_FORMAT(date_article, \'%d/%m/%Y à %Hh%imin%ss\') AS date_article_fr FROM articles ORDER BY date_article DESC LIMIT'. $taille.'offset'.$offset);
    et ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $query = 'SELECT id_article, titre, article, DATE_FORMAT(date_article, "%d/%m/%Y à %Hh%imin%ss") AS date_article_fr FROM articles ORDER BY date_article DESC LIMIT '.$taille.' OFFSET '.$offset;
     
    $req = $bdd->prepare($query);
     
    $req->execute();

  7. #7
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Ben, la première ne marche pas, à cause des espaces… Tu peux reformuler ta question ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Par défaut
    je veux savoir pourquoi la premiere ne fonctionne pas

  9. #9
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    C’est à cause de sa syntaxe. Si tu fais un echo de la requête tu verras qu’elle se termine par LIMIT5OFFSET10 (j’ai pris des nombres un peu au pif). SQL ne voit qu’un seul mot du fait qu’il n’y a pas d’espaces, et c’est un mot qu’il ne reconnaît pas, alors il renvoie un message « erreur de syntaxe ».
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  10. #10
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Par défaut
    ok c'est bien compris merci beaucoup pour cet éclairage

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

Discussions similaires

  1. Comment afficher le contenu d'un fichier ini dans un mémo?
    Par Jayceblaster dans le forum Langage
    Réponses: 7
    Dernier message: 13/05/2014, 17h38
  2. Réponses: 4
    Dernier message: 19/10/2006, 16h24
  3. Comment afficher le contenu d'une cassette DAT?
    Par prefna dans le forum Périphériques
    Réponses: 1
    Dernier message: 24/07/2006, 13h46
  4. [MySQL] afficher plusieurs enregistrements par page par page à la volée
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/03/2006, 12h22
  5. Réponses: 23
    Dernier message: 07/02/2006, 17h55

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