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 :

Pagination et mise en forme d'affichage des données


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut Pagination et mise en forme d'affichage des données
    Bonjour,

    Je souhaiterais afficher les résultats d’une table de ma base de donnée, mais avec un système de pagination et une mise en forme spéciale : en fait, il faudrait que mes entrées s’affichent dans un tableau, et qu’une page contienne par exemple 9 entrées. Donc en gros je voudrais que celles-ci s’affichent dans un tableau de 3 lignes et 3 colonnes, comme ceci :

    Entree18 Entree17 Entree16
    Entree15 Entree14 Entree13
    Entree12 Entree11 Entree10

    Page 1 sur 2


    Entree9 Entree8 Entree7
    Entree6 Entree5 Entree4
    Entree3 Entree2 Entree1

    Page 2 sur 2

    ETC…..


    Voici la structure de ma base de données :

    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
    -- 
    -- Structure de la table `liste`
    -- 
     
    CREATE TABLE `liste` (
      `id` int(11) NOT NULL auto_increment,
      `nom` varchar(30) collate utf8_unicode_ci NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=19 ;
     
    -- 
    -- Contenu de la table `liste`
    -- 
     
    INSERT INTO `liste` (`id`, `nom`) VALUES 
    (1, 'Entree1'),
    (2, 'Entree2'),
    (3, 'Entree3'),
    (4, 'Entree4'),
    (5, 'Entree5'),
    (6, 'Entree6'),
    (7, 'Entree7'),
    (8, 'Entree8'),
    (9, 'Entree9'),
    (10, 'Entree10'),
    (11, 'Entree11'),
    (12, 'Entree12'),
    (13, 'Entree13'),
    (14, 'Entree14'),
    (15, 'Entree15'),
    (16, 'Entree16'),
    (17, 'Entree17'),
    (18, 'Entree18');
    Et voici le code de ma page index.php :

    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
    <?php
    include("mysql/mysql_connect.php");
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <?php
    // On écrit les liens vers chacune des pages
    // -----------------------------------------
     
    // On met dans une variable le nombre de messages qu'on veut par page
    $nombreDeMessagesParPage = 3; // Essayez de changer ce nombre pour voir :o)
    // On récupère le nombre total de messages
    $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM liste');
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb_messages'];
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    ?>
     
    </p>
     
    <p>
       <?php
     
     
    // --------------- Etape 3 ---------------
    // Maintenant, on va afficher les messages
    // ---------------------------------------
    if (isset($_GET['page']))
    {
            $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (guestbook.php?page=4)
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
            $page = 1; // On se met sur la page 1 (par défaut)
    }
     
    // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     
    $reponse = mysql_query('SELECT * FROM images ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
     
    while ($donnees = mysql_fetch_array($reponse))
    {
            print $donnees['nom'].'<br /><br />';
    }
    ?>
    </p>
     <p><br />
       <br />
     </p>
     <hr size="1"/>
     <?php
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a class="liens-text" href="index.php?page=' . $i . '">' . $i . '</a> ';
    }
    ?>
     
    </body>
    </html>
    <?php
    include("mysql/mysql_disconnect.php");
    ?>
    Je pense que c’est à ce niveau là qu’il faudrait modifier quelque chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($donnees = mysql_fetch_array($reponse))
    {
            print $donnees['nom'].'<br /><br />';
    }

    S'il vous plait aidez-moi......

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Qu'est ce qui ne marche pas dans ton code actuel ?

  3. #3
    Membre régulier Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Points : 101
    Points
    101
    Par défaut
    Je crois qu'il pense à qqchose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <style type="text/css">
    #entourage { width:150px; }
    .bloc { width:50px; float:left; }
    </style>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    print '<div id="entourage">';
    while ($donnees = mysql_fetch_array($reponse))
    {
            print '<div class="bloc">'.$donnees['nom'].'</div><br />';
    }
    print '</div>';
    ou bien faire aussi avec ul li et display:inline, mais un vrai et unique tableau html ne te permettra pas de faire la disposition voulu.

    ne pas confondre php et mise en forme html/css.

  4. #4
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut
    Non ce n'est pas du tout ce que je veux...
    Je sais très bien que le PHP n'a rien à voir avec le CSS, seulement je pensais faire un echo "<table>, etc..." mais ca ne marchera pas...

Discussions similaires

  1. [AC-2010] Mise en forme de l'affichage des données dans une liste de choix déroulante
    Par Nephi dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 17/09/2010, 13h40
  2. mise en forme à l'affichage
    Par donny dans le forum Langage
    Réponses: 6
    Dernier message: 27/03/2007, 16h56
  3. Mise en forme informations issues des cartes réseaux
    Par crunchattak dans le forum VBScript
    Réponses: 2
    Dernier message: 05/02/2007, 10h03
  4. Réponses: 2
    Dernier message: 15/12/2006, 10h31
  5. Idée de mise en forme pour affichage de code
    Par binouche22 dans le forum Mise en forme
    Réponses: 8
    Dernier message: 16/03/2006, 18h14

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