Affichage par ordre alphabetique

Bonjour,
si vous plait j'ai un probleme, j'utilise dreameweaver et easyphp pour la base de données, alors je vais que la liste s'affiche selons ordre alphabetique, aider moi pardon.
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. Contributeur
    Donne des détails sur la requête SQL que tu utilises pour avoir tes données, la structure de ta table et quels sont les champs selon lesquels tu veux trier tes données.
    -1
    1. <?php
      require("connection.php"); $req="SELECT `prenom` , `nom` , `postnom` , `lieunais` , `datenais` , `lieuvoeux` , `datevoeux` , `lieuperpet` , `dateperpet` , `lieusacerdo` , `datesacerdo` , `nationnal` , `villeresid` , `adresse` , `tel` , `email` , `fax` , `etude`, `communaute`
      FROM `personnel` WHERE etude <> ''";
      //Execution de la requête
      $res=mysql_query($req) or die ("erreur: " . mysql_error());
      $nb=mysql_num_rows($res);
      for($i=1;$i<$nb;$i++)
      {
      $ligne=mysql_fetch_array($res);
      echo "<tr>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $i . "</td>";
      echo "<td height=29 bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['prenom'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['nom'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['postnom'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['lieunais'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['datenais'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['lieuvoeux'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['datevoeux'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['lieuperpet'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['dateperpet'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['lieusacerdo'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['datesacerdo'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['nationnal'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['villeresid'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['adresse'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['tel'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['email'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['fax'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['etude'] . "</td>";
      echo "<td bordercolor=\"#FFFFFF\" bgcolor=\"#66CCFF\">" . $ligne['communaute'] . "</td>";
      echo "</tr>";
      }
      ?>
      0
  2. Contributeur
    Je pense que le code suivant devrait être plus clair et rapide
    <?php
    require("connection.php"); 
    $req = "SELECT `prenom` , `nom` , `postnom` , `lieunais` , `datenais` , `lieuvoeux` , `datevoeux` , `lieuperpet` , `dateperpet` , `lieusacerdo` , `datesacerdo` , `nationnal` , `villeresid` , `adresse` , `tel` , `email` , `fax` , `etude`, `communaute` FROM `personnel` WHERE etude != '' ORDER BY nom, prenom";
    //Execution de la requête
    $res = mysql_query($req) or die ("erreur: " . mysql_error());
    while($ligne = mysql_fetch_assoc($res)){
    	echo "<tr>";
    	echo "<td style='border-color: #FFFFFF; background-color: #66CCFF;'>" . $i . "</td>";
    	while($header = mysql_fetch_field($res)){
    		echo "<td style='border-color: #FFFFFF; background-color: #66CCFF;'>" . $ligne[$header->name] . "</td>";
    	}	
    	echo "</tr>";
    }
    ?>
    

    De même, si personnel contient uniquement tous les noms de champs utilisés içi, tu peux remplacer toute cette énumération de nom de champs par *
    Ce code trie le résultat de la requête d'abord par nom puis par prenom en cas de doublon de nom
    Si tu veux faire un tri par une autre colonne, il te suffit de passer à ton script par un $_GET['sort'], par exemple, la colonne par laquelle triée et donc d'adapter le ORDER BY
    0
    1. Bonjour,

      Pour trier le résultat d'un select, il suffit d'ajouter "ORDER BY" :
      SELECT * FROM maTable WHERE colonne='valeur' ORDER BY colonne ASC
      

      Il existe 2 sorte de tri :
      - ASC pour l'ordre ascendant
      - DESC pour l'ordre descendant
      Ca te permet de tri par ordre alpha (ou ordre inverse)
      0
      1. bien merci, je vais faire, alors une fois réussis, je vais vous faire signe bien je vous remerci une fois encore pour votre intervention
        0
        1. bonjour!
          un peut de regrès, je reçois un message d'erreur de syntaxe, si vous plait avec mon exemple, veuillez me donner un exemple qui marche
          0
          1. $req="SELECT * FROM personnel WHERE etude != '' ORDER BY nom, prenom ASC"; 
            
            0
            1. Bonjour!
              je tiens d'abord à vous souhaiter une bonne commencement de la semaine, je suis satisfait, ça marche bien; mais il y a trop d'espace d'interligne de nom comment faire pour reduire cette espace car j'ai tenté de reduire la taille de caractères mais rien, je vous en pris
              0