Afficher des champs dans l'ordre

t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   -  
aomann Messages postés 52 Statut Membre -
Bonjour,

Dans un enregistrement de ma table, il y a 4 champs (A, B, C, et D) que je souhaiterais afficher, mais dans un ordre ASC. Ceci pour tous les enregistrements.
Comment faire cela, afficher des champs dans l'ordre, et non des enregistrements dans l'ordre ?
Merci.

6 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    SELECT...................ORDER BY A,B,C,D ASC
    0
    1. Utilisateur anonyme
       
      normalement ASC se fait par défaut
      0
  2. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merci "le père". C'est effectivement un truc comme çà.
    Pour détailler un peu plus, j'affiche un tableau avec des individus :
    $select = 'SELECT * FROM table ORDER BY nom ASC, prenom ASC'; 
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    while($row = mysql_fetch_array($result)) 
        {
            echo '<tr>';
            echo '<td width="196">'.$row['nom'].'</td>';
            echo '<td width="200">'.$row['prenom'].'</td>';

    Ensuite, une personne peut avoir eu plusieurs conjoints (jusque 4).
    Et dans l'enregistrement d'un individus, il y a cjt_1, cjt_2, cjt_3, cjt_4, date_mariage_1, date_mariage_2, date_mariage_3, date_mariage_4.
    Dans la suite du tableau que j'affiche, il y a la colonne cjt, puis la colonne mariage.
    Ma difficulté est de sortir et d'afficher les mariages dans l'ordre ..........
    0
  3. Utilisateur anonyme
     
    Tu peux toujours recopier tes 4 champs cjt_x dans un tableau, puis le trier avec sort
    Idem avec date_mariage_x
    Mais comme je suppose que tu peux avoir des colonnes vides (ou NULL ou date 0000-00-00 ?) il faudra peut-être que tu fasses toi-même le tri "à la main".Mais ça n'a rien de bien difficile, surtout avec un nombre de champs figé.
    0
  4. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    Comment copier les champs dans un tableau pour les trier ?
    0
    1. Utilisateur anonyme
       
      Je ne pensais pas qu'il pouvait y avoir un problème...
      $tbl=array();
      $tbl[]=$row['cjt_1'];
      $tbl[]=$row['cjt_2'];
      $tbl[]=$row['cjt_3'];
      $tbl[]=$row['cjt_4'];
      0
    2. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
       
      Je n'suis pas plus avancé .....
      0
    3. Utilisateur anonyme
       
      Tu as demandé comment recopier les champs dans un tableau, c'est comme ça qu'il faut faire.
      Pour trier le tableau obtenu, il faut utiliser la fonction sort comme dans mon post précédent.
      Bien sûr, il faut faire la même chose avec date_mariage
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. aomann Messages postés 52 Statut Membre 2
     
    Salut,

    Vous avez seulement une table ?

    Normalement, il aurait fallu au moins 2 tables (personnes et conjoints pourraient être sur la même table).

    Personne
    ------------
    -idPersonne
    -Nom
    -Prenom

    Marriage (Joue la "table du millieu")
    ------------
    -idPersonne
    -idConjoint
    -dteMariage

    Conjoint
    ------------
    -idConjoint
    -Nom
    -Prenom

    De cette façon, les tables sont normalisées FN3. Il pourrait donc avoir plus de mariages que 4 et aucun champ ne serait gaspillé. La requête demandée serait aussi plus facile, puisqu'il aura qu'un mariage par "ligne".

    Alex
    0
  7. Utilisateur anonyme
     
    Bonsoir

    Si j'ai bien compris ce que tu veux

    $requete = "select * from matable";
    $resultat = mysql_query($requete);
    
    while $ligne=mysql_fetch_num ($reultat) {
      sort($ligne,SORT_STRING); // tri des champs
      for ($k=0;$k<count($ligne);$k++) echo htmlspecialchars ($ligne[$k],' ';
      echo '<br>';
    } // while 
    -1