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 :

Tri d'une requête SELECT en fonction de cases à cocher


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut Tri d'une requête SELECT en fonction de cases à cocher
    Bonjour,

    Je vais essayer de faire simple.
    J'ai mis en place un petit outil de gestion d'articles en internes, j'ai un select qui lit dans la base et qui affiche toutes els references des articles et toutes les noms des articles à coté (dans le meme select).
    J'aimerais que, juste a côté, il y ait 2 cases à cocher : "trier par nom" et "trier par reference"...
    Comment metter en place ce tri SVP ?
    Voici le code de mon select (si ça peut vous aider)
    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
    <SELECT NAME="reference_mod" ID="reference_mod"> 
    <?php
    
      $connect=ODBC_connect("TESTPHP5","sa","sasa");
      $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY CODEPRODUIT";
      $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());
      while (odbc_fetch_row($res))
      { 
        
        $CodeProduit_mod = trim(odbc_result($res,"CODEPRODUIT"));
        $Designation_mod = trim(odbc_result($res,"DESIGNATION"));
        if( $reference_mod == $CodeProduit_mod )
        {
          echo "<OPTION value='".$CodeProduit_mod."' selected='selected'>".$CodeProduit_mod." - ".$Designation_mod."</OPTION>";
        }
        else
        {
          echo "<OPTION value='".$CodeProduit_mod."'>".$CodeProduit_mod." - ".$Designation_mod."</OPTION>";
        }
         
        // $sql="select DESIGNATION from produit where CODEPRODUIT='$CodeProduit_mod'";
      }
    
    ODBC_close($connect);
    
    ?> </SELECT>

    J'ai soulignée et mis en gras la requete qui fait que ça affiche par ordre de REFERENCE...
    Enfin je pense que j'ai été clair.

    SVP aidez moi

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Une option simple à mettre en place, une valeur GET à récupérer dans l'irl et avant de lancer ta requête, tu vérifies si la variable GET existe, si oui, tu regardes à quel type de tri elle correspond.

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href = "./monFormulaire.php?tri=Nom" > trier par nom </a>
     
    <a href = "./monFormulaire.php?tri=Reference" > trier par reference </a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If (isset($_GET['tri'])
    {
      test valeur
      traitement (requête)
    }
    else
    {
      ta requête actuelle
    }
     
    ton code actuel

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Je l'ai fait par 2 méthodes (similaires) en suivant ta bonne idée à laquelle je n'aurais pa pensé

    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
    if(isset($_GET['tri'])&& ($GET['tri']=nom))
    {
      $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY DESIGNATION";
      $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());
    }
    elseif(isset($_GET['tri'])&& ($GET['tri']=ref))
    { 
      $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY CODEPRODUIT";
      $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());  
    }
    else
    {
    $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY CODEPRODUIT";
    $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());  
    }
    et

    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
    if(isset($_GET['tri']))
    {
      if ($GET['tri']=nom)
      {
        $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY DESIGNATION";
        $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());
      }
      else
      {
        $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY CODEPRODUIT";
        $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());
      }
    }
    else
    {
    $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY CODEPRODUIT";
    $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());
    }
    et les 2 liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <A HREF="gestion_base_interne.php?tri=ref">Tri par ref</A>
    <BR>
    <A HREF="gestion_base_interne.php?tri=nom">Tri par nom</A>
    Quand je touche a rien, au départ, cela tri par CODEPRODUIT (comme je voulais !) mais peut importe le lien sur lequel je clique il me tri toujours par nom , comment est possible ? (dans les 2 cas de figure, d'ailleurs je ne sais pas quel est le plus fiable)

    merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Points : 74
    Points
    74
    Par défaut
    Bon je met a jour ce petit POST pour dire que j'ai trouvé la solution

    J'ai fais tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(isset($_GET['tri']))
    {
      $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY DESIGNATION";
      $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());
    }
    else
    {
      $sql="select CODEPRODUIT,DESIGNATION from produits ORDER BY CODEPRODUIT";
      $res=odbc_exec($connect, $sql) or die($sql."<br />".odbc_error());
    }
    Et pour mes liens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <A HREF="gestion_base_interne.php">Tri par ref</A>
    <BR>
    <A HREF="gestion_base_interne.php?tri=1">Tri par nom</A>
    En tout cas merci d'avoir répondu et d'avoir passé du temps pour moi.
    bonne journée et bonnes fetes

    Ju'

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/06/2012, 11h59
  2. une requête SELECT INTO provoque un plantage sous Access
    Par Invité dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 29/12/2005, 11h35
  3. fusion de 2 colonnes dans une requête select?
    Par epeichette dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/11/2005, 23h05
  4. C'est possible dans une requête SELECT ?
    Par Kokito dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/04/2005, 16h59
  5. Tri d'une requête UNION
    Par MasterOfChakhaL dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/08/2004, 10h26

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