Afficher des champs dans l'ordre

Fermé
t671 Messages postés 1413 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 24 mars 2023 - 21 nov. 2012 à 18:47
aomann Messages postés 51 Date d'inscription lundi 26 novembre 2012 Statut Membre Dernière intervention 4 décembre 2012 - 27 nov. 2012 à 03:05
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 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 901
21 nov. 2012 à 22:36
SELECT...................ORDER BY A,B,C,D ASC
0
Utilisateur anonyme
21 nov. 2012 à 23:05
normalement ASC se fait par défaut
0
t671 Messages postés 1413 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 24 mars 2023 11
22 nov. 2012 à 15:32
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
22 nov. 2012 à 17:40
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 1413 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 24 mars 2023 11
23 nov. 2012 à 17:03
Comment copier les champs dans un tableau pour les trier ?
0
Utilisateur anonyme
23 nov. 2012 à 17:52
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 1413 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 24 mars 2023 11
24 nov. 2012 à 15:51
Je n'suis pas plus avancé .....
0
Utilisateur anonyme
26 nov. 2012 à 09:13
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 lundi 26 novembre 2012 Statut Membre Dernière intervention 4 décembre 2012 2
Modifié par aomann le 27/11/2012 à 03:06
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
21 nov. 2012 à 22:40
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