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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Pagination Tableau MySQL


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur PHP
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur PHP

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Pagination Tableau MySQL
    Bonjour,

    J'ai un problème avec la pagination de mon tableau auquel je récupère les données dans une BDD MySQL. Je voudrais faire en sorte que l'affichage de mon tableau se fasse sous plusieurs page ayant chacune une limite de 5 entrée.
    Cet-à-dire, mettre un "ASC LIMIT 5" par page.
    Je voudrais que le changement de page se fasse sans actualisation de la page (Ajax / Javascript).
    Cela fait 1 semaine que j'essaye de faire un script de ce genre, sans succès !
    Merci d'avance, j'espère avoir de l'aide

    Voici mon code :

    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
    <?php
    	echo'<fieldset>';
    ?>   
     <style>
    	table{
    	margin-left:2px;
    	margin-right:2px;
    	text-align:center;
    	border:0px solid #fff;
    	}
     
     
    	.prem{
    	background-color:#efefef;
    	}
     
    	.classe1 {
    	background:#eeeeee;
    	}
     
    	.classe2 {
    	background:#dddddd;
    	}
    	</style>
    <?php
    // on se connecte à la base de données
    	include('../connexion.php');
     
    	mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
    	mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
     
    //On selectionne les données
    	$result = mysql_query('SELECT id,nom_annonce FROM annonces ORDER BY id ASC LIMIT 5');
     
    //On voit si il y a quelque chose. Si il n'y a rien, on affiche un message
    	if(mysql_num_rows($result) == 0)
    {
    	echo '<div class="cadre"><p>Aucune annonces pour le moment! <b>>><a title="Ajouter une  cat&eacute;gorie" href="ajouter-annonces.php">Ajouter une annonce</a></b></p> </div>';
    }
    //Si il y a quelque chose, on affiche nos données
    	else 
    {
    	echo '<table style="width: 100%;" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="background-color: rgb(192, 192, 192); text-align: left;">Annonces</td> <td style="background-color: rgb(192, 192, 192); text-align: left;">Modifier</td> <td style="background-color: rgb(192, 192, 192); text-align: left;">Supprimer</td> </tr>';
     
    	while($affiche = mysql_fetch_array($result))
    {
    //On calcul le nombre d'article dans chaque catégorie
    	$calcul=$affiche['id'];
    	$result1 = mysql_query("SELECT id FROM annonces WHERE id=$calcul");
    	$total = mysql_num_rows($result1);
    //Fin du calcul
    	echo '<tr class="prem '.( ($i % 2 == 0) ? 'classe1' : 'classe2' ).'"><td><a style="text-decoration:none" href="voir-annonces.php?id='.$affiche['id'].'"><font color="chocolate"/>'.$affiche['nom_annonce'].'</font></a></td> <td><a style="text-decoration:none" href="modifier-annonces.php?id='.$affiche['id'].'"><font color="chocolate"/><img src="images/modifier.png" alt="Modifier"/></font></a></td> <td><a style="text-decoration:none" href="supprimer-annonces.php?id='.$affiche['id'].'"><font color="chocolate"/><img src="images/supprimer. png" alt="Supprimer"/></font></a></td></tr>';
     
    	$i++;
    }
    	echo '</tbody></table>';
    //On ferme else
    } 
     
    ?>
    <br> 
     
    <?php
    	if (mysql_num_rows($result1))
    {
    	echo'<b><a href="ajouter-annonces.php">Ajouter une annonce</a></b>';
    }
     
    ?>
    <?php
     
    	echo'</fieldset>';
     
    ?>

  2. #2
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    tu doit faire en sorte d'avoir LIMIT numDebut , nombreRecords
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $result = mysql_query('SELECT id,nom_annonce FROM annonces ORDER BY id ASC LIMIT 0,5'); //pour la première page
    $result = mysql_query('SELECT id,nom_annonce FROM annonces ORDER BY id ASC LIMIT 5,5'); //pour la deuxième page
    $result = mysql_query('SELECT id,nom_annonce FROM annonces ORDER BY id ASC LIMIT 10,5'); //pour la 3eme page
    etc ...
    donc changer les valeurs en fonction du numéro de la page
    ASC n'a rien a voir avec LIMIT , mais bien avec ORDER BY
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur PHP
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur PHP

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci de ta réponse,

    Avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result = mysql_query('SELECT id,nom_annonce FROM annonces ORDER BY id ASC LIMIT 0,5'); //pour la première page
    $result = mysql_query('SELECT id,nom_annonce FROM annonces ORDER BY id ASC LIMIT 5,5'); //pour la deuxième page
    $result = mysql_query('SELECT id,nom_annonce FROM annonces ORDER BY id ASC LIMIT 10,5'); //pour la 3eme page
    cela ne m'affiche aucunes annonces.

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    étrange !
    tu devrait peut-être utiliser une seule requête (au lieu des trois à la fois)
    et adapter celle-ci en fonction de la page que tu veux afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query('SELECT id,nom_annonce FROM annonces ORDER BY id ASC LIMIT '.$debut.',5');
    évidement il te faut calculer $debut en fonction du numéro de page
    par exemple:

    $debut=($numpage-1)*5;

    bien-sûr tu passera une variable $numpage qui contiendra le numéro de page que tu veux afficher.
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur PHP
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur PHP

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Je n'ai pas vraiment comprit le bout de code que vous m'avez fournit. Je veut quelque chose de dynamique, qui fasse les pages automatiquement et qui fasse le changement de page de cette façon (index.php?page=1) etc...

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

Discussions similaires

  1. [MySQL] Pagination d'un tableau MYSQL
    Par chris52 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/04/2012, 08h56
  2. Tableau MySQL selon variables de formulaire
    Par freemann dans le forum Langage
    Réponses: 1
    Dernier message: 20/10/2011, 12h45
  3. Pagination tableau nombreuses lignes
    Par philair100 dans le forum Langage
    Réponses: 4
    Dernier message: 23/11/2010, 11h03
  4. [Smarty] Smarty et tableau MySQL
    Par crazy33 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/11/2007, 15h34

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