Cita: - Las claves: ¿son los nombres de las columnas y con la consulta de zenok de SHOW...?
No exactamente.
Las claves de un array asociativo proveniente de una consulta, está compuesto por los nombres de las columnas asignados en la query de SQL. SI se les aplicaron alias a las columnas de salida, lo que PHP muestra en esas claves son las denominaciones de esos alias.
un
DEvovlería un array de tres claves, con las denominaciones Id_Producto, Categoría y Existencias, en lougar de ID, categ y stock.
Cita: - No entiendo cómo coger sólo los nombres de las columnas y hacerlo con un foreach.
Leyendo el manual de PHP... Alli encontrarás que existe un método para obtener el nombre de las clavez, y si recorres las claves por cada array... estás recorriendo el array item por item y obteniendo solo sus claves.
http://php.net/manual/es/function.array-keys.php http://php.net/manual/es/book.array.php
Piensalo de esta forma: El primer while recorre del registro 0 al N, mientras que el interno recorre desde la clave 0 de cada array a la N. Uno lo hace "verticalmente" y el otro "horizontalmente".