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 :

Problème de pagination...


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    nal
    nal est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut Problème de pagination...
    Bonjour,

    J'ai une page de réponse à un formulaire.php
    dans laquelle j'ai limité la pagination à 10 réponses/pages.
    ça fonctionne.
    Mais bizarrement lorsqu' il n'y a que 1 page de réponses, ça m'affiche quand même le lien vers 3 pages.
    En première page il y a toutes les réponses normales à la requête (et ça devrait s'arrêter là...). Sauf que ça pagine une 2ème et 3ème pages inutiles
    et qui font apparaitre tout les enregistrements de la base...

    Je suppose que ce doit être un problème de syntaxe au niveau du décompte des pages...mais je vois pas.

    Je me permets de mettre le code de cette page:
    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    <?php
    //Connexion à la base de données
    mysql_connect('XX', 'XX', 'XX');
    mysql_select_db('XX');
     
    $messagesParPage=10; 
    //Nous allons afficher 10 messages par page.
     
    //Une connexion SQL doit être ouverte avant cette ligne...
    $retour_total=mysql_query('SELECT COUNT(*) AS total FROM Agence_immobiliere'); //Nous récupérons le contenu de la requête dans $retour_total
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
     
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
     
    //Préparation de la requête
     
    $page = isset($_GET['page']) ? $_GET['page'] : ''; 
     
    // Prepare le requete MySql
    if(isset($_POST['toutescommunes']))
    { 
      $choix1 = $_POST[''];
    } 
    else 
    { 
     $choix1 = $_POST['communes'];
    } 
     
     
     
    $choix1 != "";
     
    $finrequete = "(Nom_commune LIKE '%$choix1%')";
     
     
    // La requête sql pour récupérer les messages de la page actuelle.
    $retour_messages=mysql_query('SELECT * FROM Agence_immobiliere WHERE '.$finrequete.' ORDER BY identifiant DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
    {
     
      echo '
    
                 <div style="border:solid; border-width:1px; width:1002px; align: center; margin-left:7%">
                 <table width="1000"  align="center" cellpadding="0" cellspacing="0" bgcolor="#FCFAE1">
                    <tr>
    <td><a href="images_agence.php?id='.$donnees_messages['Identifiant'].'" style="text-decoration:none; color:black">
    <strong>Identifiant : '.stripslashes($donnees_messages['Identifiant']).'</strong></a></td><td> 
    
    '.stripslashes($donnees_messages['Nom_commune']).' - '.stripslashes($donnees_messages['Type_bien']).' - '.stripslashes($donnees_messages['Type_bien2']).' -
     '.stripslashes($donnees_messages['Prix']).' euros - '.stripslashes($donnees_messages['Nombre_pieces']).' pièce(s) - 
    '.stripslashes($donnees_messages['Dimension']).' m2 <br>
    <i>  '.stripslashes($donnees_messages['Descriptif']).'</i><br><br>
    
                     </td>
                    </tr>
                    </table>'; 
    }
     
     
     
    echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
    {
         //On va faire notre condition
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }	
         else //Sinon...
         {
              echo ' <a href="reponse_agence.php?page='.$i.'">'.$i.'</a> ';
         }
    }
     
    ?>
    C'est d'autant plus étrange que j'ai utilisé le même code de pagination pour une autre page de requête et que là, ça fonctionne. Mais même en comparant les deux je vois pas d'où ça vient...

    Quelqu'un verrait -il où ça cloche??

    Merci par avance pour vos réponses,
    Nal

  2. #2
    nal
    nal est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    hum...c'était juste...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour_total=mysql_query('SELECT COUNT(*) AS total FROM Agence_immobiliere WHERE '.$finrequete1.' ');

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

Discussions similaires

  1. [Struts-Layout] Problème de pagination
    Par Haplo2006 dans le forum Struts 1
    Réponses: 1
    Dernier message: 23/02/2007, 18h09
  2. Problème de pagination avec un GridView
    Par Perceuse-Killer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/02/2007, 13h30
  3. [DisplayTag] Problème de pagination
    Par questionneuse dans le forum Taglibs
    Réponses: 6
    Dernier message: 21/08/2006, 16h54
  4. [MySQL] Problème de pagination dans un script.
    Par Scurz dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/08/2006, 12h47
  5. [SQL] Problème de pagination avec tableau
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/05/2006, 22h16

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