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] Je souhaite limiter le nombre de résultat par page [Fait]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Par défaut [SQL] Je souhaite limiter le nombre de résultat par page
    Bonjour,

    j'ai besoin de votre aide car je souhaite limiter le nombre de résultat obtenu a 5 par page sur la partie du code 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
    // on execute la requête SQL  pour l'affichage des résultats de la requete
    $Res = mysql_db_query($Database, $sql);
     
    //boucle de recherche et affichage des résultats de la requete
    $Result = 1;
    while($data = mysql_fetch_array($Res)){
    ?>
    <p>&nbsp;</p>
         <table width="70%" border="0" cellpadding="0" cellspacing="0">
    	      <tr>
    <?php
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //											AFFICHAGE DES RESULTATS
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    // Ci dessous on attribu en premiere ligne l'image de MPI 
    // en deuxième ligne c'est le nombre que retourne la boucle des résultats
    // en troisième c'est le titre de la page trouvé incluant le lien URL
    echo '<td width="70%"><img src="mpi\images\mpi.jpg" width="30" height="30" border="0">
    <font face="Bodoni MT Condensed" size="6" color="#FFFFFF"><b>    '.$Result.'.    </font>
    <a href="'.htmlentities($data["$Entree3"]).'" target="_blank"><font face="Bodoni MT Condensed" size="5" color="#00CC66">'.htmlentities($data["$Entree1"]).'</b></font></a></td>';
    ?>
              </tr>
              <tr>
    <?php
    // Ci dessous correspond a l'affichage de la description de la réponse	    
    echo '<td><font face="garamond" color="#666666" size="5">'.htmlentities($data["$Entree2"]).'</font></td>';
    ?>		  
    		  </tr> 
    	 </table>
     
    <?php
    $Result++;
    }
    }
    // on ferme la connexion
    mysql_close($Connexion);
    Voila si quelqu'un peu m'aider ?

  2. #2
    Membre averti Avatar de Atikae
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 56
    Par défaut
    C'est quoi ta requête SQL ?
    Ajoute LIMIT 0, 5 à la toute fin de celle-ci.

  3. #3
    Membre confirmé Avatar de mickado
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 154
    Par défaut
    Citation Envoyé par Atikae
    C'est quoi ta requête SQL ?
    Ajoute LIMIT 0, 5 à la toute fin de celle-ci.

    Non je ne pense pas que c'est ce qu'il veut faire.

    Ce qu'il souhaiterai faire c'est un nombre d'affichage de résultat limité sur un nombre de pages bien précis.

    kilian67 si d'ici demain tu n'a pas réponse a ton probléme je te donnerais un de mes code que j'ai rapidement coder car actuellement je ne suis pas cher moi.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Par défaut
    Merci pour vos réponses

    J'ai déjà essayer de rajouter limit a la fin de la requete mais ça marche pas

    Voici ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //on prépare la requête SQL 
    $sql = "SELECT $Champs FROM $Table WHERE $Cles LIKE '%$tab[0]%'"or die(mysql_error()) ;
     
    // on boucle pour integrer tous les mots dans la requête
    for($i = 1; $i < $nb; $i++){
    $sql .= "$EtOu $Cles LIKE '%$tab[$i]%'";
    }
     
    // on donne l'ordre d'affichage (modif dans les parametres)
    $sql .= "ORDER BY $Ordre ASC";
    En fait si je mets limit a la fin je n'ai plus de resultat du tout.

    Ce que je veut faire c'est que si j'ai 15 réponses de la base de donnée que les résultats s'affiche sur 3 pages avec un lien "suivant" et "retour" suivant le cas.

  5. #5
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Bonjour,

    C'est donc de la pagination que tu veux faire. Je te conseille de t'inspirer de ce code: http://php.developpez.com/sources/?p...ysqlpagination

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Par défaut
    Désoler yiannis je n'y arrive pas je suis perdu.

    En fait je ne sais pas ou integré le code qu'il y a sur le lien que tu m'a donner.

    Je suis dessus depuis ce matin et je n'y arrive pas.

    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
    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
    150
    151
    152
    153
    <?
    $Q = $_POST['recherche'];
    $_POST['recherche'] = $Q ;
     
    // on donne le lien de la page necessaire  pour les paramètres de connexion
    require("parametres.php");
     
    // on se connecte au serveur (modif dans les parametres)
    $Connexion = mysql_connect($Host, $Login, $Pass) or  die ("<br><br><p><center><table width=\"70%\" bgcolor=\"#990000\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\"><tr><td><center><h1>Connexion au serveur <big><u>\"$Host\"</u></big> impossible<br>Veuillez contactez le webmaster pour lui signaler le problème</h1>
    											</td></tr></table><p></p><p>&nbsp;</p></center></td></tr>");
    mysql_select_db("$Database",$Connexion);
     
    // on verifie si le champs de recherche contient un ou plusieurs mots (sauf les mots de moins de 3 lettres)
    if(!empty($_POST['recherche'])){
     
    // si le champs est bien rempli on execute le reste du script
    // on passe les mots recherchés en minuscules
    $Q = strtolower($Q);
     
    // on supprime le superflux, et tout ce qui n'est pas un "mot" de plus de trois lettres
    $tab = preg_split('~[\s[:punct:]]~', preg_replace('~\b\S{1,3}\b~', ' ', $Q), -1, PREG_SPLIT_NO_EMPTY);
     
    // on compte le nbr d'élément du tableau.
    $nb = count($tab);
     
    //Onverifie si les mots tapez sont valide si ce n'est pas le cas on donne un message d'erreur
    if (!$nb) {
        echo "<br><br><br><br><br><br><br><span style=\"font-size:18pt;\"><font color=\"#FF0000\">Les mots clés utilisés ne sont pas adaptés.<br><br><br>
    Il faut renouveler votre recherche en changeant les mots clés.<br><br><br>
    </u></b></font></span><br><p>";
    // formulaire pour une seconde recherche
    echo
    "<center>
        <p>&nbsp;</p>
      <form method=\"post\" action='$PageResultats'>
      <input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
    <input type=\"submit\" name=\"value\" value=\"go !\">
    </form>
    </center>";
    } else {
     
     
    //on prépare la requête SQL (modif dans les parametres)
    $sql = "SELECT $Champs FROM $Table WHERE $Cles LIKE '%$tab[0]%'"or die(mysql_error()) ;
     
    // on boucle pour integrer tous les mots dans la requête (modif dans les parametres)
    for($i = 1; $i < $nb; $i++){
    $sql .= "$EtOu $Cles LIKE '%$tab[$i]%'";
    }
     
    // on donne l'ordre d'affichage (modif dans les parametres)
    $sql .= "ORDER BY $Ordre ASC";
     
    // Si un seul enregistrement est trouvé, on affiche un message au singulier
    if ($nb == "1") {
    echo "<br><br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat de votre requète concernant le mot <b><u>\"$Q\"</u></b></font></span><br><p>";
    }
     
    // Dans le cas contraire le message est au pluriel...	
    else {
    echo "<br><br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat de votre requète concernant les mots <b><u>\"$Q\"</u></b></font></span><br><p>";
    }
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // on execute la requête SQL en fait c'est un premier tour pour afficher le nombre de résultats obtenu en haut
    $Res = mysql_db_query($Database, $sql);
    $Result = 1;
    while($data = mysql_fetch_array($Res)){
    $Result++;
    }
    // On creer une variable en elevant 1 pour avoir un résultat corect
    $Resultat = $Result - 1 ;
     
     
    // Si un seul enregistrement est trouvé, on affiche un message au singulier
    if ($Resultat == 0) {
    echo "<p><br><br><br><span style=\"font-size:16pt;\"><font color=\"#FF0000\">Aucun résultats pour <b>\"".$_POST['recherche']."\"</font></span></p>";
    }else
    // Si un seul enregistrement est trouvé, on affiche un message au singulier
    if ($Resultat == 1) {
    echo "<br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultat: Une réponse</u></b></font></span><p>";
    }
    else {
    // Dans le cas contraire le message est au pluriel...	
    echo "<br><br><span style=\"font-size:16pt;\"><font color=\"#009999\">Résultats: $Resultat réponses</u></b></font></span><p>";
    mysql_free_result($Res);
    }
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    // formulaire pour une seconde recherche
    echo
    "<center>
        <p>&nbsp;</p>
      <form method=\"post\" action='$PageResultats'>
      <input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
    <input type=\"submit\" name=\"value\" value=\"go !\">
    </form>
    </center>";
     
    // on execute la requête SQL cette fois c'est pour l'affichage des résultats de la requete
    $Res = mysql_db_query($Database, $sql);
     
    //boucle de recherche et affichage des résultats de la requete
    $Result = 1;
    while($data = mysql_fetch_array($Res)){
    ?>
    <p>&nbsp;</p>
         <table width="70%" border="0" cellpadding="0" cellspacing="0">
    	      <tr>
    <?php
     
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //											AFFICHAGE DES RESULTATS
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    // Ci dessous on attribu en premiere ligne l'image de MPI 
    // en deuxième ligne c'esst le nombre que retourne la première boucle pour le nombre total de résultat
    // en troisième c'est le titre de la page trouvé incluant le lien URL
    echo '<td width="70%"><img src="mpi\images\mpi.jpg" width="30" height="30" border="0">
    <font face="Bodoni MT Condensed" size="6" color="#FFFFFF"><b>    '.$Result.'.    </font>
    <a href="'.htmlentities($data["$Entree3"]).'" target="_blank"><font face="Bodoni MT Condensed" size="5" color="#00CC66">'.htmlentities($data["$Entree1"]).'</b></font></a></td>';
    ?>
              </tr>
              <tr>
    <?php
    // Ci dessous correspond a l'affichage de la description de la réponse	    
    echo '<td><font face="garamond" color="#666666" size="5">'.htmlentities($data["$Entree2"]).'</font></td>';
    ?>		  
    		  </tr> 
    	 </table>
     
    <?php
    $Result++;
    }
    }
    // on ferme la connexion
    mysql_close($Connexion);
     
    // s'il n'y a pas de mot on donne un message d'erreur avec demande de renouvelement avec d'autre mots clés
    }else{
        echo "<br><br><br><br><br><br><br><span style=\"font-size:18pt;\"><font color=\"#FF0000\">Les mots clés utilisés ne sont pas adaptés.<br><br><br>
    Il faut renouveler votre recherche en changeant les mots clés.<br><br><br>
    </u></b></font></span><br><p>";
    // formulaire pour une seconde recherche
    echo
    "<center>
        <p>&nbsp;</p>
      <form method=\"post\" action='$PageResultats'>
      <input type=\"text\" maxLength=\"50\" size=\"40\" name=\"recherche\" value=\"Essayez avec d'autres mots clés\">
    <input type=\"submit\" name=\"value\" value=\"go !\">
    </form>
    </center>";
    }
    ?>

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

Discussions similaires

  1. nombre de résultats par pages
    Par nal dans le forum Langage
    Réponses: 14
    Dernier message: 03/05/2012, 17h38
  2. Comment limiter le nombre de lignes par page ?
    Par COOL_DEV dans le forum iReport
    Réponses: 0
    Dernier message: 30/09/2011, 18h16
  3. [FPDF] Limiter le nombre de réponses par pages
    Par tyjez dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 18/06/2009, 17h08
  4. [SQLK][T-SQL]Limitation du nombre de résultats
    Par elsuket dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 10/08/2007, 08h02
  5. [sql]Limiter le nombre de résultats
    Par Mimo dans le forum Oracle
    Réponses: 3
    Dernier message: 31/01/2006, 15h53

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