IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Colonne image dans une table [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut Colonne image dans une table
    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!

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par b_reda31 Voir le message
    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.
    pas obligatoirement, l'image peut avoir n'importe quel nom. une fois que ce nom est stocké dans le base de données le lien est fait entre la ligne dans la table et le nom du fichier

  3. #3
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut
    Citation Envoyé par nosferapti Voir le message
    pas obligatoirement, l'image peut avoir n'importe quel nom. une fois que ce nom est stocké dans le base de données le lien est fait entre la ligne dans la table et le nom du fichier
    En effet vous avez tout à fait raison. Je n'y ai pas pensé.

    Que me conseillez vous dans ce cas?
    Je pense remplacer le type du champ image pas le type Auto-Increment afin d'assurer l'unicité.Qu'en pensez vous?

  4. #4
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par b_reda31 Voir le message
    Je pense remplacer le type du champ image pas le type Auto-Increment afin d'assurer l'unicité.Qu'en pensez vous?
    il suffit juste que le fichier soit unique dans le répertoire de stockage donc cela se teste au moment de l'upload et ensuite le nom du fichier peut se mettre dans une colonne de type texte sans problème

  5. #5
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut
    Merci bien pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer une image dans une table SQL Serveur 2000
    Par Soobook dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2006, 17h00
  2. [C#] Comment enregistrer une image dans une tables access ?
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 7
    Dernier message: 16/06/2006, 11h58
  3. Liaison avec des images dans une table
    Par ValérieBruxelles dans le forum Access
    Réponses: 5
    Dernier message: 25/11/2005, 14h21
  4. Réponses: 2
    Dernier message: 03/11/2005, 20h26
  5. Comment inserer une image dans une table sous sql qerveur
    Par zeddy23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/02/2005, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo