Précédent   Forum du club des développeurs et IT Pro > Bases de données > PostgreSQL > Débuter
Débuter Forum d'entraide : Débuter en base de données avec PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/12/2012, 15h55   #1
Pathoche
Invité régulier
 
Femme Pat Hoche
Développeur informatique
Inscription : octobre 2012
Messages : 20
Détails du profil
Informations personnelles :
Nom : Femme Pat Hoche
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : octobre 2012
Messages : 20
Points : 7
Points : 7
Par défaut Ordre des champs (ou colonnes)

Bonjour à tous.

Peut-on modifier l'ordre des champs dans une table ?

Je m'explique.

J'ai une table qui sert à stocker des notes d'élèves obtenues à des modules de cours.
Sa structure est :
id_eleve | Geographie_1 | Geographie_2 | Geographie_3 | Math_1 | Math_2 | Math_3

J'ai une page php qui affiche cette table sous forme de tableau. J'utilise pg_field_name dans une boucle pour obtenir le nom des champs et ainsi créer l'en-tête de mon tableau. Je fais ainsi pour ne pas avoir à modifier le code php si le nom d'un module change.

Jusque là, tout va bien.

Si je rajoute par exemple un module de Geographie, il va se retrouver à la fin, comme ça :
id_eleve | Geographie_1 | Geographie_2 | Geographie_3 | Math_1 | Math_2 | Math_3 | Geographie_4
Et cela se retrouve dans l'affichage de mon tableau.

Donc je voudrais pouvoir insérer dans ma table le champ de mon module de cours à la bonne place :
id_eleve | Geographie_1 | Geographie_2 | Geographie_3| Geographie_4 | Math_1 | Math_2 | Math_3
Pathoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 10h32   #2
skuatamad
Expert Confirmé
 
Inscription : août 2008
Messages : 1 690
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 690
Points : 2 812
Points : 2 812
Inutile de modifier l'ordre de création des colonnes dans la table.
Utilise information_schema (columns) pour récupérer les colonnes de la table (à la place de pg_field_name) couplé à un ORDER BY.

Par contre il y a un évident problème de modélisation.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 14h09   #3
estofilo
Modérateur
 
Inscription : octobre 2008
Messages : 1 702
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 702
Points : 2 347
Points : 2 347
On peut pas avec PostgreSQL créer une nouvelle colonne ailleurs qu'à la fin ni la déplacer après création.

Mais effectivement cette modélisation sous forme de tableur n'est pas adaptée aux bases de données, en principe en BDD on ferait une table de modules.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 08h10   #4
Pathoche
Invité régulier
 
Femme Pat Hoche
Développeur informatique
Inscription : octobre 2012
Messages : 20
Détails du profil
Informations personnelles :
Nom : Femme Pat Hoche
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : octobre 2012
Messages : 20
Points : 7
Points : 7
Merci skuatamad.
On va voir ça.
Pathoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2013, 17h25   #5
genamiga
Membre du Club
 
Inscription : janvier 2008
Messages : 127
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 127
Points : 49
Points : 49
Avec EMS SQL Manager for PostgreSQL (même la version Freeware gratuite) il est possible de changer l'ordre des colonnes mais seulement s'il n'y a aucune clé étrangère dans la table.
genamiga est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h51.


 
 
 
 
Partenaires

Hébergement Web