Bonjour à tous,
J'essai actuellement de réaliser mon premier site dynamique avec PHP,ce dernier consiste en un catalogue de produits d'une société.
J'ai donc une table "produit" qui contient les champs suivants :
- id (Auto-Incrément (int))
- Categorie.
- ...
- Image (varchar).Ce champ contient le lien vers l'image avec le nom du fichier
L'ajout d'un nouveau produit dans la bdd se fait via un formulaire,afin d'inserer un nouvel enregistrement.
Dans ce formulaire il y a un "input" de type (File) où l'administrateur chargera l'image à partir de son disque dur.
Le problème est justment là, il faudrai que le nom de l'image uploadée correspronde à l'id de l'enregistrement afin de faire le lien lors de l'affichage des produits.
La solution pour laquelle j'ai opté est la suivante :
requête 1 : inserer un nouvelle enregistrement pour tous les champs sauf le champ image (il restera vide pour le moment)
Ensuite je récupére l'id de cet enregistrement (le dernier)par la fonction mysql_insert_id() dans une variable $last.
Et enfin :
Requête 2 : Je met à jour le dernier enregistrement afin de remplire le champ image qui est resté vide aprés la requête 1 :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $nom = "imagebdd/{$last}.{$extension_upload}"; $req = "UPDATE produit SET image='$nom' WHERE id='$last'"; mysql_query ($req);
Cette démarche fonctionne très bien néanmoins je fais appel à deux requêtes pour l'insertion d'un seul enregistrement!
Quelqu'un aurai une idée pour ce problème?
Merci d'avance
PS : Si je fais l'appel de la fonction mysql_insert_id() avant la requête celle-ci me renvoie toujours la valeur 0.Donc à priori, il n'est pas possible de connaitre l'id du dernier enregistrement sans faire un requête avant!
Partager