par
sadeq » 23 mars 2011, 22:39
Je cherche bien le nom de la colonne en fonction d'un chiffre
Je gère des réponses à des questionnaires soit des dizaines de tables différentes à un p'tit chouyat prêt
donc pas statiques en elles mêmes
ex : table 1 : a|b|c|d|
position 3 renvoie c
table 2 : a|aa|b|c|d|
position 3 renvoie b
C'est effectivement ces valeurs en gras que je souhaite récupérer
Est possible??
Merci
Bonjour,
Bien sûr on peut accéder à la structure d'une table et lire les métadonnées et donc les informations décrivant ses colonnes entre autres. Du coup, on peut récupérer les noms des colonnes et les mémoriser dans un tableau selon leur ordre d'origine dans la table. De ce fait on peut effectivement récupérer le nom d'une colonne par son n° d'ordre.
Pour plus d'informations voir :
SHOW COLUMNS
Voici un exemple php/mysql, qui interroge une table de 3 colonnes : maTable (a int, b int, c int) et affiche les noms des colonnes selon leur n° d'ordre.
<pre>
<?php
// se connecter à la base
mysql_connect("localhost","root");
mysql_select_db("test");
// créer une table d'exemple
mysql_query("CREATE TABLE maTable (a int, b int, c int)"); // une table à 3 colonnes : a, b et c
// extraction des colonnes de la table "maTable"
$resultat = mysql_query("SHOW COLUMNS FROM maTable");
// lire le résultat
$champs = array(); // on stockera dans ce tableau les noms des colonnes de la table interrogée
while($resultat && $row = mysql_fetch_array($resultat))
{
$champs[] = $row["Field"]; // le champ "Field" correspond au nom d'une colonne de la table interrogée
}
// en résultat on obtient donc le tableau $champs contenant les noms des colonnes de la table
echo "Liste des colonnes de maTable: \n";
print_r($champs);
// afficher par exemple la première colonne de la table
echo "Colonne n°1 : " , $champs[0], "\n"; // affiche "a"
// afficher par exemple la deuxième colonne de la table
echo "Colonne n°2 : " , $champs[1], "\n"; // affiche "b"
// afficher par exemple la troisième colonne de la table
echo "Colonne n°2 : " , $champs[2], "\n"; // affiche "c"
?>
</pre>
Et voici le résultat de ce programme après exécution:
Liste des colonnes de maTable:
Array
(
[0] => a
[1] => b
[2] => c
)
Colonne n°1 : a
Colonne n°2 : b
Colonne n°2 : c
[quote="chloe5972"]Je cherche bien le nom de la colonne en fonction d'un chiffre
Je gère des réponses à des questionnaires soit des dizaines de tables différentes à un p'tit chouyat prêt
donc pas statiques en elles mêmes
ex : table 1 : a|b|c|d|
position 3 renvoie [b]c[/b]
table 2 : a|aa|b|c|d|
position 3 renvoie [b]b[/b]
C'est effectivement ces valeurs [b]en gras[/b] que je souhaite récupérer
Est possible??
Merci[/quote]
Bonjour,
Bien sûr on peut accéder à la structure d'une table et lire les métadonnées et donc les informations décrivant ses colonnes entre autres. Du coup, on peut récupérer les noms des colonnes et les mémoriser dans un tableau selon leur ordre d'origine dans la table. De ce fait on peut effectivement récupérer le nom d'une colonne par son n° d'ordre.
Pour plus d'informations voir : [url=http://dev.mysql.com/doc/refman/5.5/en/show-columns.html]SHOW COLUMNS[/url]
Voici un exemple php/mysql, qui interroge une table de 3 colonnes : maTable (a int, b int, c int) et affiche les noms des colonnes selon leur n° d'ordre.
[php]
<pre>
<?php
// se connecter à la base
mysql_connect("localhost","root");
mysql_select_db("test");
// créer une table d'exemple
mysql_query("CREATE TABLE maTable (a int, b int, c int)"); // une table à 3 colonnes : a, b et c
// extraction des colonnes de la table "maTable"
$resultat = mysql_query("SHOW COLUMNS FROM maTable");
// lire le résultat
$champs = array(); // on stockera dans ce tableau les noms des colonnes de la table interrogée
while($resultat && $row = mysql_fetch_array($resultat))
{
$champs[] = $row["Field"]; // le champ "Field" correspond au nom d'une colonne de la table interrogée
}
// en résultat on obtient donc le tableau $champs contenant les noms des colonnes de la table
echo "Liste des colonnes de maTable: \n";
print_r($champs);
// afficher par exemple la première colonne de la table
echo "Colonne n°1 : " , $champs[0], "\n"; // affiche "a"
// afficher par exemple la deuxième colonne de la table
echo "Colonne n°2 : " , $champs[1], "\n"; // affiche "b"
// afficher par exemple la troisième colonne de la table
echo "Colonne n°2 : " , $champs[2], "\n"; // affiche "c"
?>
</pre>
[/php]
Et voici le résultat de ce programme après exécution:
[quote]
Liste des colonnes de maTable:
Array
(
[0] => a
[1] => b
[2] => c
)
Colonne n°1 : a
Colonne n°2 : b
Colonne n°2 : c
[/quote]