IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

deplacer un champ dans une table de BDD


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut deplacer un champ dans une table de BDD
    Bonjour le forum,

    Je dispose de deux tables, une ancienne et une nouvelle.

    L'ancienne devait répondre a l'époque a une demande spéciale, je n'avais donc pas reflechi a organiser le positionnement des champs.

    L'evolution de mes fichiers PHP lisant ma table a reclamé la créatin d'une autre table, dont l'organistaion est différente de la premiere table.

    Exemple le champ nom se trouve 5eme dans la premiere table et 20eme dans la deuxieme table.

    Je voudrais savoir, s'il vous plait, comment faire pour adapter la premiere table a la seconde (déplacer les champs d'une table, je ne peux par les détruire pour les reconstruire a l'endroit ou je veux, cqr toutes mes infos seraient par la meme effécées.) faire en sorte que le champ nom de la premiere soit déplacé dans cette meme table a la 20eme place.

    Merci beaucoup de votre aide, et trés bonne journée le forum.

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 869
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 869
    Par défaut
    Salut,

    Ce que tu cherches à faire dépend de ton SGBD. Et ce n'est utile que pour des requêtes qui récupèreraient tous les champs ( par exemple un SELECT * ou un INSERT sans liste des éléments à insérer )

    Pour changer l'ordre des champs, il faut, en fonction de ton SGBD, aller voir les tables systèmes; Ce sont elles qui contiennent les définitions de tes tables, et donc la liste des colonnes. Il se peut que tu puisses changer l'ordre mais je ne sais pas si c'est toujours possible; Je ne suis même pas sûr que tu puisses avoir le droit de modifier ces tables systèmes a la mano.

    Quel SGBD utilises-tu ?

    A+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    phpMyAdmin 2.2.3

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE tbl_name CHANGE col_name col_definition AFTER other_col_name
    http://mysql.com/alter table

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    Merci Mr N, je connaissais cette fonction, mais elle ne marche pas, j'ai regulierement une erreur., je pense que je vais laisser tomber, et modifier mes select * en select nom de colonne et le tour sera joué.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    J'ai trouvé plus simplet plus rapide.

    Je vais exporté en CSV, modifier l'ordre des colonne, recéer une table conforme et recoller le fichier CSV a la nouvelle table.

    Je teste de suite.

    Bonne journée

  7. #7
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Citation Envoyé par kaolivier
    Merci Mr N, je connaissais cette fonction, mais elle ne marche pas, j'ai regulierement une erreur., je pense que je vais laisser tomber, et modifier mes select * en select nom de colonne et le tour sera joué.
    Je vois pas le rapport entre un select * et l'ordre des colonnes. A moins que... ne me dit pas que tu n'utilises pas mysql_fetch_assoc en lieu et place de mysql_fetch_row ???

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    PIRE QUE TOUT
    j'utilise while($ligne = mysql_fetch_array($result, MYSQL_ASSOC)

    C'est pas grave, je me suis debrouillé autrement, par contre, je n'arrive pas a faire en sorte que phpmyadmin accepte de lire un fichier CSV pou rle traduire en table et données !!!!

    Trés embetant

  9. #9
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ben je ne vois toujours pas pourquoi l'ordre de tes colonnes à de l'importance.
    Suffit d'acceder à tes données via $ligne['nom_du_champ']
    et de faire des requêtes d'insertion complêtes (comme ça devrait être fait normalement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into table(champ1, champ2) values (val1, val2)
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into table values (val1, val2)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Deplacer un champs dans une table ?
    Par isa150183 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/07/2006, 15h44
  2. Modification du nom d'un champ dans une table
    Par reef1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/06/2004, 10h55
  3. Réponses: 2
    Dernier message: 19/05/2004, 10h13
  4. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo