Lister les colonnes d'une table SQL [Résolu]

Signaler
Messages postés
10
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
16 mars 2011
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,

je cherche à lister le nom des colonne et le contenu d'une table sql pour en créer une nouvelle requete.

exemple :
j'ai la table test avec les colonnes : id , aa,bb,cc,dd

je veux copier son contenu dans une table test2 avec les memes colonnes mais en modifiant l'id  et  le contenu de la colonne aa par exemple.

je veux utiliser un systeme de copie dynamique car j'ai plusieurs tables à fusionner avec de tres nombreux champs.
je ne souhaite pas me les taper à la main pour créer les requetes sql. (pour expliquer le pourquoi du comment^^)

un bout de script qui puisse me permettre de générer une requete  genre :

mysql_query(" insert into test2 ($nomcolonne[0],$nomcolonne[1],...) values ($valeur_0_modifier, valeur[1],..)");

J'espere avoir assez bien expliqué mon soucis.

J'ai tente de le faire avec
$res7

mysql_query ("select * from $character where account XXX" );$result7 =mysql_fetch_array($res7);
foreach($result7as$champs=>$valeur){
 //création de la requete
}

mais cela ne me donne que le dernier enregistrement de la table.

si vous avez des pistes ou une solutions je suis preneur.

Merci à vous ^^
A voir également:

7 réponses

Messages postés
10
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
16 mars 2011

j'ai trouvé mon bonheur seul :

$fields= mysql_list_fields ("date_base", "table");//récupère tout les champs d'un table
$columns =mysql_num_fields($fields);// récupère le nombre de champs d'un table

for($i=0;$i<$columns;$i++)
{
echomysql_field_name($fields,$i)."
";// on affiche tous les champs de la table en cours
}
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

INSERT INTO nouvelle_table SELECT * FROM ancienne_table;

Ensuite, tu peux modifier les id comme tu veux, modifier la valeur de l'autoincrement, bref...
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
J'ai oublié pour créer la nouvelle table...

Une simple requête pour obtenir la requête à utiliser pour créer la table :

SHOW CREATE TABLE ancienne_table;

http://dev.mysql.com/doc/refman/5.0/fr/show-create-table.html
Messages postés
10
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
16 mars 2011

le probleme c'est que j'ai certains champs à modifier lors de la copie car sinon je vais avoir un conflit d'id ou une perte de lien.

car c'est pour fusionner 2 bases qui  identique en une troisieme.
je dois donc modifer les id lors de la copie en cas de présence dans la nouvelle table (la troisiéme)

merci de ton aide mais cela ne répond correctement pas à mon  problème ^^ 
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Désolé, j'ai rien compris à ton problème alors.

Sinon, tu utilises des fonctions qui sont obsolètes... C'est pas grave, mais c'est juste que bientôt, elles n'existeront plus.
Messages postés
10
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
16 mars 2011

bonjour,

quelles nouvelles fonctions faut il utiliser pour obtenir le meme résultats ?

merci
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Par exemple comme il est indiqué dans la doc, en français :
http://www.php.net/manual/fr/function.mysql-list-fields.php