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 :

Pagination avec mssql


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Pagination avec mssql
    Bonjour

    Je souhaiterai limiter le nombre d'enregistrement d'une requete select à 50 par page. Je sais qu'il faut utiliser top.

    J'ai à peu près compris comment ça fonctionnait avec les limit de mysql mais
    avec mssql je nage complétement. Hésiste t'il un tuto la dessus je cherche depuis pas mal de temps je trouve rien d'intéressant.

    Voici comment est codé la 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
    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
    if(isset($_GET["debut"])){
       $debut=$_GET["debut"];
       }
     
     
    // connexion à la base
      $idConnection=mssql_pconnect("Mon srveur","login","pwd");
      if(!$idConnection){
         die("probleme de connection au serveur:".mssql_get_last_message()."</b>");
      }
     
      if(!mssql_select_db("ma base")){
      die("impossible de se connecter à la base de données");
      }
     
    //-------------- fonction de pagination compte le nombre de lignes
     
     
    // requete de selection
    $req1="SELECT TOP 50*
             FROM appels, incidents, produitendommages
             WHERE (
             appels.NUMAPPEL = incidents.IDINCIDENT
             ) AND (
             appels.NUMAPPEL = produitendommages.NUMPRODUIT
             ) ORDER BY NUMAPPEL";
     
    $res1 = mssql_query($req1,$idConnection);
     
     
     
    print("<p>");
           print("<CENTER><TABLE class=\"ex\" cellspacing=\"0\" border=\"1\" width=\"100%\">");
           print("<tr>
                    <td colspan=\"11\" bgcolor=\"#cccccc\">
                    <DIV align=\"center\">
                    <font COLOR=\"#000000\" size =3 face=\"verdana, arial, helveticca\"><b>Liste des appels re&ccedilus</b></font></DIV></td>
          </tr>");
           print("<TR bgcolor=\"#CCCCCC\"><TD width=\"10%\"><center><font COLOR=\"black\" size =2 face=\"verdana\"><b>N°Appel</b></font></center></TD><TD width=\"15%\"><center><font COLOR=\"#000000\" size =2 face=\"verdana\"><b>Date</b></font></center></TD><TD width=\"20%\"><center><font COLOR=\"#000000\" size =2 face=\"verdana\"><b>Nom/Pr&eacutenom</b></font></center></TD><TD width=\"30%\"><center><font COLOR=\"#000000\" size =2 face=\"verdana\"><b>Objet</b></font></center></TD><TD width=\"15%\"><center><font COLOR=\"#000000\" size =2 face=\"verdana\"><b>Fin prévue</b></font></center></TD><TD width=\"5%\"><center><font COLOR=\"#000000\" size =2 face=\"verdana\"><b>Etat</b></font></center></TD><TD colspan=5><center><font COLOR=\"#000000\" size =2 face=\"verdana\"><b>Action</b></font></center></TD></TR>");
           while($ligne=mssql_fetch_assoc($res1)){
                 $var=$ligne["DATEHEURE"];
                 $var1=$ligne["NOMPRENOM"];
                 $var2=$ligne["OBJET"];
                 $dateFin=$ligne["DATEFIN"];
                 if($dateFin=="01-01-1900"){
               		$dateFin='';
            	 }
            	 if($ligne["INTERVENTION"]!='Terminée'){
                     print("<TR bgcolor=\"#433881\"><TD><DIV align=\"center\"><font color=\"#FFFFFF\">$ligne[NUMAPPEL]</font></div></TD><TD><font color=\"#FFFFFF\">$var</TD><TD><font color=\"#FFFFFF\"> $var1</TD><TD><font color=\"#FFFFFF\">$var2</TD><TD><font color=\"#FFFFFF\">$dateFin</TD><TD><font color=\"#FFFFFF\">$ligne[INTERVENTION]</TD>
     
                     <TD><A HREF=\"modifierAppel.php?ID=".$ligne["NUMAPPEL"]."\"><img hspace=\"7\" src=\"images/notepad.gif\" alt=\"Modifier\" title=\"Modifier\" border=\"0\" /></a></TD>
                     <TD><A HREF=\"supprimerAppel.php?ID=".$ligne["NUMAPPEL"]."\"><img hspace=\"7\" src=\"images/poubelle.gif\" alt=\"Suppimer\" title=\"Supprimer\" border=\"0\" /></a></TD></TR>");
                     }
                     else{
                     print("<TR bgcolor=\"#737cbb\"><TD><DIV align=\"center\"><font color=\"#FFFFFF\">$ligne[NUMAPPEL]</font></div></TD><TD><font color=\"#FFFFFF\">$var</font></TD><TD><font color=\"#FFFFFF\"> $var1</font></TD><TD><font color=\"#FFFFFF\">$var2</font></TD><TD><font color=\"#FFFFFF\">$dateFin</font></TD><TD><font color=\"#FFFFFF\">$ligne[INTERVENTION]</font></TD>
     
                     <TD><A HREF=\"modifierAppel.php?ID=".$ligne["NUMAPPEL"]."\"><img hspace=\"7\" src=\"images/notepad.gif\" alt=\"Modifier\" title=\"Modifier\" border=\"0\" /></a></TD>
                     <TD><A HREF=\"supprimerAppel.php?ID=".$ligne["NUMAPPEL"]."\"><img hspace=\"7\" src=\"images/poubelle.gif\" alt=\"Suppimer\" title=\"Supprimer\" border=\"0\" /></a></TD></TR>");
                     }
    }
    print("</TABLE></CENTER>");
           print("</p>");
     
     
     
    mssql_close($idConnection);
    Si vous avez une idée de comment si prendre ???

    merci d'avance

  2. #2
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    C'est pas plutot LIMIT 0,50 qu'il faut utiliser???

    Après, tu passe le numero de ton dernier record affiché, et tu recommence : LIMIT 51,100 par exemple!!

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Ouai ça fonctionne avec mysql mais la j'utilise mssql 2000

    Tu as pas une ptite idée de comment si prendre??

  4. #4
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    arg!!!
    j'avais pas fait gaffe!!!
    Il utilise pas le même langage SQL???

    Ben alors non, je sais pas!!

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    L'équivalent de LIMIT est bien TOP chez mssql,
    Et pour répondre à Julien.alkaza, la limite de nombre de lignes retournées ne fait pas partie de la norme SQL, donc chaque moteur l'implémente selon son envie.

    Pour info
    Access/MSSQL : TOP
    MySQL/PostGres : LIMIT
    Interbase : ROWS
    Paradox/Oracle : pas d'implémentation!

    Plus d'info : http://sqlpro.developpez.com/cours/sqlaz/fonctions/

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Pagination@MSSQL
    http://www.experts-exchange.com/Databases/Microsoft_SQL_Server/Q_21336205.html
    merci google (mots clefs: pagination mssql)

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/09/2006, 10h28
  2. pagination avec dataTable
    Par dude666 dans le forum JSF
    Réponses: 4
    Dernier message: 28/08/2006, 12h23
  3. [SQL] Problème de pagination avec tableau
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/05/2006, 23h16
  4. [C#] Comment gérer la pagination avec un GridView ?
    Par appwnet dans le forum ASP.NET
    Réponses: 5
    Dernier message: 05/05/2006, 14h47
  5. Capacité de base sql avec mssql express
    Par wonderboy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/03/2006, 15h06

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