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 :

Requete affichée par pages


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut Requete affichée par pages
    Bonsoir à tous,

    J'ai à développer un affichage d'une liste d'albums, dont ont choisit la 1ere lettre du nom de l'artiste sur la page précédente.

    J'aimerais découper l'affichage par pages.

    J'ai donc inséré un petit script, la première page fonctionne correctement, mais dès que je souhaite passer aux pages suivantes, ma requête ne fonctionne plus (et je sais même pourquoi...).

    En effet, le choix de la lettre se fait par un passage de variable, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a id="liste" href="liste_alph.php?choix=A">A</a>
    qui est récupéré sur la page devant servir d'affichage avec :
    $choix=$_GET['choix'];
    Mon script est le suivant :

    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
    <?php
    $choix=$_GET['choix'];
     
    $page = isset($_GET['page']) ? $_GET['page'] : ''; 
     
    // Prepare le requete MySql
    $requete = "select * from ARTISTES where ART_NOM like '$choix%'";
    $ret = mysql_query($requete);
    // Variable nombre d'enreg par page
    $limit=3;
    if($debut==""){$debut=0;}
    $debut=$page*$limit;
    // Compte le nombre de champ
    $nb_total=mysql_num_rows($ret);
    // Requete
    $limite=mysql_query("$requete limit $debut,$limit");
     
     
    // Affiche le page par page avec ses liens
    if ($page>0) {
    $precedent=$page-1;
    echo "<a href=\"$PHP_SELF?page=$precedent\">PRECEDENT</a>";
    }
     
    $i=0;
    $j=1;
     
    if($nb_total>$limit) {
    while($i<($nb_total/$limit)) {
    if($i!=$page){echo "<a href=\"$PHP_SELF?page=$i\">$j</a> ";}
    else { echo "<b>$j</b>";}
    $i++;$j++;
    }
    }
     
    if($debut+$limit<$nb_total) {
    $suivant=$page+1;
    echo "<a href=\"$PHP_SELF?page=$suivant\">SUIVANT</a>";
    }
     
     
    //Affichage le contenu de votre table
    //avec une limite, dans l'exemple $limit est à 3
     
    $limit_str = "LIMIT ". $page * $limit .",$limit";
     
    $result = mysql_query("SELECT * FROM artistes WHERE art_nom like '$choix%' ORDER BY art_nom ASC $limit_str");
    while ($row =mysql_fetch_array ($result) )
    {
     
    $art=$row['ART_NOM'];
    echo '
    <table id="affichage" width="237px" align="left" valign="middle" cellpadding="1" cellspacing="0">
    <tr valign="top" border="0">
    <td width="90" border="0">
    	<img src="' . $row['ART_IMAGE'] . '" width="90" height="90" border="1" style="border-color:#9F9F9F;">
    			</a>
    		</td>
    ' ;
    }
    ?>
    Ma première page marche car la variable $choix est récupérée, mais elle n'est plus existante pour les autres pages, donc l'affichage renvoie tous les artistes et non pas ceux commençant par la lettre choisie.
    Si quelqu'un à une solution à ce problème...

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    Quand tu changes de page, tu perd la valeur se trouvant dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $choix=$_GET['choix'];
    Je ne vois null part dans ton code, le fait que tu la récupère pour la passer dans la page suivante.

    donc quand tu fais page suivante, la commande MySQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = "select * from ARTISTES where ART_NOM like '$choix%'";
    te renvoie tout, puisque "like ''%'' " .

  3. #3
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Non pour moi il la récupère bien puisque je vois dans son script qu'il récupère le $_GET.

    Moi je pense que c'est peut être lié à la requête car il prends peut être la variable $choix% qui n'existe pas et donc n'a rien...

    peut être essayer ca alors ? :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "select * from ARTISTES where ART_NOM like '".$choix."'%'";

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Et tu peux me dire , où il récupère le $_GET, avec une valeur, dans sa troisième page?

    Parce que si j'ai bien compris son script.

    1 : il envoie un formulaire avec une valeur
    2 : il récupère le $_GET et affiche 3 valeurs.
    3: il fait 'suivant', donc il réaffiche sa page, pour générer les 3 valeurs suivantes, mais nul part dans ses liens, il récupère la valeur de $choix.


    donc il devrais faire quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<a href=\"$PHP_SELF?page=$suivant&choix=$choix\">SUIVANT</a>";

Discussions similaires

  1. Nombre d'élements affichés par page
    Par boheme260 dans le forum Langage
    Réponses: 1
    Dernier message: 31/07/2009, 10h07
  2. [MySQL] Choisir le nombre de résultats à afficher par page
    Par raffa dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/01/2009, 12h53
  3. afficher par pages les results d'1 request
    Par aKro dans le forum Requêtes
    Réponses: 5
    Dernier message: 06/07/2005, 20h27
  4. résultat d'une requete affiché par mois
    Par zorely dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2004, 07h18

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