Salut,
Je comprend pas bien ton 1er problème vu que, par PhpMyAdmin, la création d'un nouveau champ auto incrément fonctionne bien et se remplit tout seul.
Fais une sauvegarde de ta table et teste ça :
ALTER TABLE `Ma_table` ADD `id_contact` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST
... à moins que tu ais une vieille version de MySQL ?
Pour le 2ème pb, je pense que tu fais une confusion. L'id n'est pas là pour compter les contacts (en supprimant des contacts, ça fera des "trous" dans la numérotation sans tout renuméroter).
Pour compter :
SELECT COUNT(*) FROM Ma_Table
Pour avoir le dernier id (juste après avoir fait un INSERT) :
SELECT LAST_INSERT_ID();
Si tu te préoccupes d'obtenir à l'avance l'id du futur enregistrement pour pré-renseigner la case, par exemple, tu peux tenter :
SELECT MAX(id)+1 FROM Ma_Table ;
... mais sans garantie (ça marchera pas si plusieurs utilisation simultanée du formulaire : tous auront le même chiffre)
AMHA mieux vaut ne rien afficher : l'utilisateur s'en tape, en général, des "id"...
Maintenant, à toi de mettre du php autour...