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 :

Probléme affichage par page


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Points : 21
    Points
    21
    Par défaut Probléme affichage par page
    Bonjour à tous, j'ai un soucis concernant mon affichage par page que je ne parviens de résoudre.
    j'essaye donc de faire des test pour comprendre d'ou viens mon erreur.

    Sur une page j'ai fais un léger formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html>
    <body>
    <FORM method="POST" action="php.php" enctype="multipart/form-data">
    num theme:<BR><INPUT type=text name="theme"><BR>
     
    <INPUT type="submit" name="envoi" value="Envoyer le théme"><BR>
    </body>
    </html>
    Sur une seconde page je fais un affichage par page en fonction du numéro de théme envoyé dans le formulaire.
    Mon test se compose d'un affichage de 5 nom par page, et je rencontre les difficultés suivantes:
    -si moins de 5 noms dans la base de données pour un numéro de théme aucun soucis d'affichage
    -si plus de 5 noms dans la base, les 5 premiers noms sont affichés correctement, en revanche lorsque je clique sur la page 2 pour visualiser les 5 suivant je ne parviens pas a rentrer dans la premiére boucle (du fait que je ne clique plus sur le boutons du formulaire mais de la page 2.
    Voici un extrait du 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
    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
     
     
    if (isset ($_POST['theme']) ){
     
    	$theme=$_POST['theme'];
    echo $theme;
    	// includes du fichier fonctions(qui permet denvoyer les liens pour la page suivante...)
    	require 'fonctions.php';
     
    //connexion à la base
     
    $nombre = 5;  
     
    	// si limite n'existe pas on l'initialise à zéro
    	if (!$limite) $limite = 0; 
     
    	// on cherche le nom de la page.    
    	$path_parts = pathinfo($_SERVER['PHP_SELF']);
    	$page = $path_parts["basename"];
     
    	// connection à la DB
    	$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    	mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
    	// requête SQL qui compte le nombre total 
    	// d'enregistrements dans la table.
    	$select = 'SELECT count(id_photo) FROM photo WHERE id_soiree='.$theme;
     
    	$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
     
    	$row = mysql_fetch_row($result);
     
    	$total = $row[0];
     
    	echo $total."total";
     
    	// vérifier la validité de notre variable 
    	// $limite;
     
    	$verifLimite= verifLimite($limite,$total,$nombre);
     
    	// si la limite passée n'est pas valide on la remet à zéro
     
    	if(!$verifLimite)  {
     
             $limite = 0;
     
    	}
     
    	// requête SQL qui ne prend que le nombre 
    	// d'enregistrement necessaire à l'affichage.
     
    	$select = 'select chemin FROM photo WHERE id_soiree='.$theme.' ORDER BY chemin ASC limit '.$limite.','.$nombre;
     
    	$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
     
    	// si on a récupéré un resultat on l'affiche.
     
    	if($total) {
     
    			// début du tableau
     
    			echo '<table bgcolor="#FFFFFF">'."\n";
     
    			// première ligne on affiche les titres prénom et surnom dans 2 colonnes
     
    			echo '<tr>';
    			echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>';
    			echo '</tr>'."\n";
     
    			// lecture et affichage des résultats sur 2 colonnes    
     
    				while($row = mysql_fetch_array($result)) {
     
    					echo '<tr>';
    					echo '<td bgcolor="#CCCCCC">'.$row['chemin'].'</td>';
    					echo '</tr>'."\n";
     
    				}
     
    			echo '</table>'."\n";
     
    		}
     
    	else
    		echo 'Pas d\'enregistrements dans cette table...';
     
    	mysql_free_result($result);
     
    	// si le nombre d'enregistrement à afficher 
    	// est plus grand que $nombre 
     
     
    	if($total > $nombre) {
     
    		// affichage des liens vers les pages
    		affichePages($nombre,$page,$total,$theme);
    		// affichage des boutons
    	}
     
    }
    else 
    echo "probléme acces page suivante";
     
    ?>
    Enfin un extrait du fichier fonction concernant l'affichage par 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
     
     
    function affichePages($nb,$page,$total) {
            $nbpages=ceil($total/$nb);
            $numeroPages = 1;
            $compteurPages = 1;
            $limite  = 0;
            echo '<table border = "0" ><tr>'."\n";
            while($numeroPages <= $nbpages) {
            echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
     
     
            $limite = $limite + $nb;
            $numeroPages = $numeroPages + 1;
            $compteurPages = $compteurPages + 1;
                if($compteurPages == 10) {
                $compteurPages = 1;
                echo '<br>'."\n";
                }
            }
            echo '</tr></table>'."\n";
    }
    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour,

    $theme est un parametre entrant de ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    affichePages($nombre,$page,$total,$theme);
    mais tu ne l'as pas déclaré de l'autre coté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function affichePages($nb,$page,$total) { ... }

    C'est cette variable theme que tu dois rappeler dans le lien qui permet de changer de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td ><a href = "'.$page.'?theme='.$theme.'&limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
    et ton test de départ va vérifier que tu ais bien cette variable, que tu viennes du formulaire initial ($_POST) ou d'un lien ($_GET)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (isset ($_POST['theme']) || isset($_GET['theme'])) { 
     if (isset ($_POST['theme'])
      $theme=$_POST['theme'];
     else
      $theme=$_GET['theme'];
     
    ...}

Discussions similaires

  1. Moteur de recherche, affichage par page et url rewriting
    Par paupiette dans le forum Langage
    Réponses: 5
    Dernier message: 22/06/2007, 11h45
  2. [FPDF] Affichage par page
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 16/05/2006, 13h33
  3. [MySQL] Problème d'affichage par page
    Par nal dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 29/04/2006, 15h00
  4. [MySQL] Affichage par page page : pages blanches à la fin
    Par carelha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/04/2006, 14h27

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