Oulalala, ça sent le code pompé sur un tuto ou une base de script sans vraiment le comprendre...
Tu peux renommer ton input tant que tu veux, ca ne changera rien, quand un champs de type "file" est envoyé via formulaire, c'est pas via $_POST que tu le récupères, mais via $_FILES.
Secondement, ton input là, retourne un tableau $_FILES['nomImage']. Tu te sers de ton premier script pour traiter ce méga-tableau $_FILES, gérer les erreurs puis enregistrer ton image le nom choisi (via $nomImage = md5(uniqid()) .'.'. $extension; dans ton script) depuis le dossier temporaire de PHP.
Donc le nom de ton image n'a rien à voir avec la façon dont tu nommes ton input. Par contre c'est ton script qui l'a généré et l'a mise dans une variable $nomImage, accessible dans le répertoire défini par la constante TARGET.
Quand tu l'inséres dans ta base, tu n'utilises donc pas $_POST['fichier'], mais $nomImage.
Quand tu voudras afficher ton image depuis un retour MySQL tu feras...
<img src="<?php echo TARGET . $row->avatar" alt="" /> (ou $row et le résultat MySQL)
PS : En passant, au vu du titre du sujet, c'est pas vraiment l'image que tu enregistres, mais uniquement son nom (optionnellement son emplacement). Si tu voulais vraiment enregistrer l'image en base, ce serai par exemple (il existe d'autre solution, peut-être plus efficace) en passant par un gros champs texte (avec option BINARY), dans lequel tu stockerais une version base64 de l'image...
Tu peux renommer ton input tant que tu veux, ca ne changera rien, quand un champs de type "file" est envoyé via formulaire, c'est pas via $_POST que tu le récupères, mais via $_FILES.
Secondement, ton input là, retourne un tableau $_FILES['nomImage']. Tu te sers de ton premier script pour traiter ce méga-tableau $_FILES, gérer les erreurs puis enregistrer ton image le nom choisi (via $nomImage = md5(uniqid()) .'.'. $extension; dans ton script) depuis le dossier temporaire de PHP.
Donc le nom de ton image n'a rien à voir avec la façon dont tu nommes ton input. Par contre c'est ton script qui l'a généré et l'a mise dans une variable $nomImage, accessible dans le répertoire défini par la constante TARGET.
Quand tu l'inséres dans ta base, tu n'utilises donc pas $_POST['fichier'], mais $nomImage.
Quand tu voudras afficher ton image depuis un retour MySQL tu feras...
<img src="<?php echo TARGET . $row->avatar" alt="" /> (ou $row et le résultat MySQL)
PS : En passant, au vu du titre du sujet, c'est pas vraiment l'image que tu enregistres, mais uniquement son nom (optionnellement son emplacement). Si tu voulais vraiment enregistrer l'image en base, ce serai par exemple (il existe d'autre solution, peut-être plus efficace) en passant par un gros champs texte (avec option BINARY), dans lequel tu stockerais une version base64 de l'image...