Afficher des champs dans l'ordre

t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -  
aomann Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -
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

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
SELECT...................ORDER BY A,B,C,D ASC
0
Utilisateur anonyme
 
normalement ASC se fait par défaut
0
t671 Messages postés 1476 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
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
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
Comment copier les champs dans un tableau pour les trier ?
0
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
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
Je n'suis pas plus avancé .....
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aomann Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   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
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