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 :

[SQL] Recuperer et garder une variable


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par défaut [SQL] Recuperer et garder une variable
    Bonjour,

    J'ai un leger problème sur de la pagination. En fait, je fais une requete SQL et il me ressort beaucoup de resultats, et je l'affichiche donc sur plusieurs pages.

    Seulement, je voudrais que ce soir l'utilisateur qui choisisse le nombre de resultats à afficher par page à l'aide d'un menu déroulant (ou autre si il y a plus simple). Jusque là tout vas bien, si je choisis d'afficher seulement X resultats par page c'est ce qu'il fait, sauf que lorsque je clique sur page 2, il reprend sa valeur par défaut, et moi j'aimerai bien qu'il garde la valeur choisie par l'utilisateur.

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <form method="post" name="ResultatPage" action="resultat_reseau.php">
    <label>Nombre de resultat par page :</label>
    <select name="NombreResultat">
    <option value="5">5</option>
    <option value="10">10</option>
    <option value="25">25</option>
    <option value="50">50</option>
    </select>
    <input type="submit" name="ok" value="Ok">
    </form>
    <p>
    <?php
    if (isset($_POST['NombreResultat'])){
    	$NombreResultat=$_POST['NombreResultat'];
    }
    else{
     	$NombreResultat="10";
    }
     
    //On se connecte à MySQL 
    $db = mysql_connect('localhost', 'root', ''); 
     
    //On sélectionne la base 
    mysql_select_db('doc',$db);
     
    $nombreDeDonnesParPage = $NombreResultat;
     
    //On récupère le nombre total de donnes
    $retour = mysql_query('SELECT COUNT(*) AS id_doc FROM doc_reseau');
    $donnees = mysql_fetch_array($retour);
    $totalDeDefinition = $donnees['id_doc'];
     
    //On calcule le nombre de pages à créer
    $nombreDePages = ceil($totalDeDefinition / $nombreDeDonnesParPage );
     
    if (isset($_GET['page'])){
    	$page = $_GET['page'];
    }
    else{
    	$page = 1;
    }
    $premiereDefinitionAafficher = ($page - 1) * $nombreDeDonnesParPage ;
     
    $reponse = mysql_query('SELECT * FROM doc_reseau ORDER BY nom_doc ASC LIMIT ' . $premiereDefinitionAafficher . ', ' . $nombreDeDonnesParPage );
     
    while($row = mysql_fetch_assoc($reponse))
    { 
    //On affiche les informations de l'enregistrement en cours 
    echo "<table border cellspacing=\"0\">";
    	echo "<tr>";
    		echo "<td>";
    			echo "<a target=\"_blank\" href=\"../upload/$row[type_doc]/$row[nom_doc]$row[ext_doc]\"><img src=\"../images/icone_ouvrir.png\" width=\"20\" height=\"25\" align=\"left\"><br>";
    		echo "</td>";
    		echo "<td width=\"250\" align=\"center\">";
    			echo "</a>$row[nom_doc]";
    		echo "</td>";
    		echo "<td width=\"100\" align=\"center\">";
    			echo $row['type_doc'];
    		echo "</td>";
    		echo "<td width=\"100\" align=\"center\">";
    			echo $row['ext_doc'];
    	echo "</tr>";
    echo "</table>";
    }
    echo "<br>";
     
    //On fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
    	echo '<a href="resultat_reseau.php?page=' . $i . '">' . $i . '</a> ';
    }
     
    if (isset($_GET['page']))
    {
    	$page = $_GET['page'];
    }
    else
    {
    	$page = 1;
    }
    //On ferme la connexion à mysql 
    mysql_close();
    echo "<br><br>";
    ?>
    A savoir que je suis souple sur la façon de choisir le nombre de pages, si il y a mieu, je suis prenneur.

    Merci d'avance de vos réponses,
    Dino.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Par défaut
    Met ton n° de page en variable de session.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par défaut
    Excuses moi, mais je ne suis pas un utilisateur très avancé en php... Est-ce que tu pourrais être un peu plus précis ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Par défaut
    ok.

    En fait t'as même pas la pein d'utiliser des sessions.

    je te fais rapid le truc en algo :

    en haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nbResultatsParPage = $_POST['nbResultatsParPage'];

    dans ton html :
    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
     
    $tabNbResultatsParPage = array(5,10,15)
     
    for($i,$i<sizeof($tabNbResultatsParPage);$i++)
    {
    if $tabNbResultatsParPage[$i] == $nbResultatsParPage 
     
    {
     
      echo '<OPTION SELECTED value='.$tabNbResultatsParPage[$i]..'>'.$tabNbResultatsParPage[$i].'</OPTION>';
    }
    else{
      echo '<OPTION value='.$tabNbResultatsParPage[$i]..'>'.$tabNbResultatsParPage[$i].'</OPTION>';
    }
    }
    a toi de corriger mes fautes de frappe...

Discussions similaires

  1. [SQL] La valeur d'une variable ne semble pas être prise en compte
    Par oroumgolok dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/09/2006, 23h31
  2. [SQL] Puis-je insérer une variable PHP pour déterminer ORDER BY ?
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/05/2006, 01h41
  3. [SQL] Récupération éventuelle d'une variable pour faire des tests
    Par mougeole dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/05/2006, 13h56
  4. Garder une variable tout en revenant en arrière
    Par oceane751 dans le forum Langage
    Réponses: 12
    Dernier message: 21/05/2006, 00h46
  5. Comment garder une variable en mémoire...
    Par sam01 dans le forum Langage
    Réponses: 17
    Dernier message: 24/04/2006, 13h02

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