Dès lors que tu fais un mysql_fetch_array, tu crées un tableau dit "associatif", dont les index sont les noms des champs et les valeurs les valeurs de l'enregistrement.
Supposons la base de données suivante :
ID REFERENCE STOCK
--------------------------------------------------
1 Ref.AABBCC 25
2 Ref.XXYYZZ 30
3 Ref.ALPHA 10
4 Ref.OMEGA 0
Si tu fais une requête du type :
$req = "SELECT ID, REFERENCE, STOCK FROM table WHERE STOCK = 0";
alors une seule ligne (celle dont l'ID est 4) te sera retournée.
Tu pourras alors faire : $valeur = mysql_fetch_array($dataset); et ton tableau associatif contiendra alors :
1 => 4
id => 4
2 => Ref.OMEGA
REFERENCE => Ref.OMEGA
3 => 0
STOCK => 0
)
à partir de là, c'est très simple de savoir tous tes noms de colonnes : tu parcours ton tableau sur tous les indices non numériques :
foreach($valeur as $index => $val)
{
{
// on est sur un index qui correspond à une colonne SQL
...
}
}
Si j'ai pris la peine de te donner un exemple avec une table à 4 enregistrements, c'est que le mysql_fetch_array(...) ne prendra que la dernière ligne. Le fait de faire un while (dans le cas où tu as plusieurs enregistrements qui te sont retournés, par exemple si je demande WHERE STOCK != 0) alors tu redéfiniras ton tableau ($valeur) à chaque fois, mais les noms de colonnes resteront les mêmes. Par contre le foreach te passera plusieurs fois dans la boucle.