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 :

Tableau n'affiche pas les données sur les pages suivantes


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Tableau n'affiche pas les données sur les pages suivantes
    Bonjour à tous.

    je débute en PHP.
    Je souhaite que les données d'une base, aprés une requete de sélection, s'affichent sur plusieurs pages dans un tableau.
    Hors si la première page affiche bien le données souhaitées, et les liens vers les pages suivantes, lorsque je selectione une page quelconque, seul l'entete de mon tableau apparait, sans les données.

    Je n'arrive pas à trouver l'erreur.
    Je mets ci-dessous le code de mon formulaire de requete, qui récupère par un POST, le nom sélectionné pour le critère de choix de ma requete Mysql.

    Merci pour votre aide.

    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
     
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
             <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
                <head>
                    <title>Mon super site</title>
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    				<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="design.css" />
                </head>
     
                <body><body background="fond.png">
     
                  <!-- L'en-tête -->
                 <div id="en_tete">
                   </div>
                   <!-- Les menus -->
                     <div id="menu">        
                      <div class="element_menu">
                        <h3>Titre menu</h3>
                          <ul>
                              <li><a href="page1.html">Lien</a></li>
                              <li><a href="page2.html">Lien</a></li>
                               <li><a href="page3.html">Lien</a></li>
                           </ul>
                       </div>
     
                      <div class="element_menu">
                           <h3>Titre menu</h3>
                           <ul>
                              <li><a href="page4.html">Lien</a></li>
                               <li><a href="page5.html">Lien</a></li>
                               <li><a href="page6.html">Lien</a></li>
                           </ul>
                       </div>        
                   </div>
     
                   <!-- Le corps -->
     
                   <div id="corps">
                       <h1>Travail réalisé</h1>
     
    				<div id="table"
     
    				<p class="pages">
     
     
     <?php
      include 'conect.inc';
     $connection = mysql_connect($host,$user,$password)
           or die ("couldn't connect to server");
      $db = mysql_select_db($database,$connection)
           or die ("Couldn't select database");    
     
     $Nom = $_POST['Nom'];	   
     //$donnees = mysql_query ("SELECT * FROM fiche_travail ");
     
     
     
    // On met dans une variable le nombre de messages qu'on veut par page
     
    $nombreDeMessagesParPage = 20; // 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 fiche_travail WHERE Nom_trav='$Nom'");
     
    $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
     
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="testliste.php?page=' . $i . '">' . $i . '</a> ';
    }
    ?>
     
    </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 (livreor.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;
     $donnees = mysql_query('SELECT * FROM fiche_travail WHERE Nom_trav="$Nom" ORDER BY Id_travail DESC  LIMIT '
     . $premierMessageAafficher . ',' . $nombreDeMessagesParPage);
     
    {
     
          echo '<p align="center"><table bgcolor="#FFFFFF" border="4" cellpadding="4" cellspacing="2"></p>'."\n";
     
               echo '<tr>';
              echo '<td bgcolor="#006498"><font color="white"><b><u>Id_travail</u></b></font></td>';
               echo '<td bgcolor="#006498"><font color="white"><b><u>Nom_trav</u></b></font></td>';
               echo '<td bgcolor="#006498"><font color="white"><b><u>Date_deb</b></font></td>';
               echo '<td bgcolor="#006498"><font color="white"><b><u>Heure_deb</u></b></font></td>' ;
               echo '<td bgcolor="#006498"><font color="white"><b><u>Heure_fin</u></b></font></td>' ;
    		   echo '<td bgcolor="#006498"><font color="white"><b><u>     </u></b></font></td>';
               echo '<td bgcolor="#006498"><font color="white"><b><u>Bureau_trav</u></b></font></td>' ;
               echo '<td bgcolor="#006498"><font color="white"><b><u>Domaine_trav</u></b></font></td>' ;
     
               echo '</tr>'."\n";
     
     
           while($row = mysql_fetch_array($donnees)){
     
               echo '<tr>';
               echo '<td bgcolor="#dddddd">'.$row["Id_travail"].'</td></font>';
               echo '<td bgcolor="#cccccc">'.$row["Nom_trav"].'</td></font>';
               echo '<td bgcolor="#dddddd">'.$row["Date_deb"].'</td></font>';
               echo '<td bgcolor="#dddddd">'.$row["Heure_deb"].'</td></font>';
              echo '<td bgcolor="#cccccc">'.$row["Heure_fin"].'</td></font>';
    		   echo '<td bgcolor="#cccccc">'.$row["     "].'</td></font>';
                     echo '<td bgcolor="#dddddd">'.$row["Bureau_trav"].'</td></font>';
                     echo '<td bgcolor="#cccccc">'.$row["Domaine_trav"].'</td></font>';
     
     
     
             echo '</tr>'."\n";
           }
           echo '</table>'."\n";
     
    }
    mysql_close(); 
    ?>
    				</div>
                   </div>
     
                   <!-- Le pied de page -->
     
                   <div id="pied_de_page">
                       <p>Copyright "Tout pourri Corporation" 2005, tous droits réservés</p>
                   </div>
     
               </body>
            </html>

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    salut (et dsl pour le retard)

    essayes ca :
    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
    if(!isset($_GET["page"]))
    {
    $_GET["page"]=1;
    $var='page=1';
    $limit=0;
    }
    else
    {
    $var='page='.$_GET["page"];
    $var1='page='.($_GET["page"]-1);
    $var2='page='.($_GET["page"]+1);
    $limit=$_GET["page"]-1;
    }
    $x=10;//nombre de lignes par page
    $limit=$limit*$x;
    $sqlMax="SELECT ta_colonne FROM ta_table ";//requete bidon pour avoir le nombre d'occurences
    $resultMax=mysql_query($sqlMax);
    $max_rows=mysql_num_rows($resultMax);
    $sql="SELECT blablabla FROM blibli WHERE blobloblo LIMIT ".$limit.", ".$x." ";
    $result=mysql_query($sql);
    $num_rows=mysql_num_rows($result);
    $row=mysql_fetch_array($result);
    //t'affiche tes données comme tu veux
     
    if($_GET["page"]==1 && $limit+$x>=$max_rows)//1ère page et pas assez de données pour en afficher plusieures
    {
    echo '';
    }
    elseif($_GET["page"]==1)//1ère page et plein de données
    {
    echo '<TD align="right"><A href="suivi.php?'.$var2.'">suivant</A></TD>';
    }
    elseif($limit+$x>=$max_rows)//dernière page
    {
    echo '<TD><A href="suivi.php?'.$var1.'">precedent</A></TD>';
    }
    else//pages intermédiaires
    {
    echo '<TD><A href="suivi.php?'.$var1.'">precedent</A></TD><TD align="right"><A href="suivi.php?'.$var2.'">suivant</A></TD>';
    }
    voila, j'espères que ca réponds a ton problème

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Résultat en cours
    Bonjour Demotte

    Merci pour ta réponse.

    J'ai donc essayé, mais cela ne fonctionne pas vraiment.
    En fait si j'utilise ton code j'ai les mêmes données sur chacune des pages.

    D'autres part, la donnée de ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql="SELECT * FROM fiche_travail WHERE Nom_trav='$Nom'  LIMIT ".$limit.", ".$x." ";
    $result=mysql_query($sql);
    devrait fonctionner avec la variable POST provenant d'un autre formulaire, et ton code ne la prend pas en compte. J'ai essayé d'adapter, mais en vain.

    Que dois je rectifier ???

    Merci encore à toi.

  4. #4
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    salut, tu as un problème de concaténation a première vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql="SELECT * FROM fiche_travail WHERE Nom_trav='$Nom'  LIMIT ".$limit.", ".$x." ";
    $result=mysql_query($sql);
    deviens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql="SELECT * FROM fiche_travail WHERE Nom_trav='".$Nom."'  LIMIT ".$limit.", ".$x." ";
    $result=mysql_query($sql);
    penses a faire des echo pour repérer les erreurs

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Désolé...
    Demotte

    Désolé, mais non cela ne change rien au fait, que les donnéees affichées sont identiques sur chacune des pages.....

    Je ne voudrai pas avoir l'ai d'insister.

    Merci encore.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2016, 17h55
  2. Réponses: 2
    Dernier message: 14/05/2009, 11h08
  3. Données sur les données
    Par genamiga dans le forum Schéma
    Réponses: 2
    Dernier message: 06/01/2009, 00h08
  4. Récupérer les restrictions sur les données de Supervisor6.5
    Par l_ourse dans le forum Administration-Migration
    Réponses: 4
    Dernier message: 03/03/2008, 20h15
  5. Extraires les données sur les les bases
    Par widom dans le forum Administration
    Réponses: 5
    Dernier message: 11/06/2007, 10h58

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