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 :

Comment connaitre l'id d'une insertion avant l'insertion [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut Comment connaitre l'id d'une insertion avant l'insertion
    Bonjour,
    J'ai fit un formulaire avec l'upload d'une image.
    Dans mon champs fd_image, il va enregistrer le nom de l'image. J'aimerais que le nom de l'image soit précédé par
    id_nomdelimage
    id étant l'id de l'enregistrement

    Cependant, si je n'ai pas fait d'INSERT, je ne peux pas avoir l'id.

    Je sais qu'il y a la fonction
    mais elle ne sert a rien si le INSERT n'a pas été exécuté.

    Faut il alors que je fasse un enregistrement a vide, que je récupere l'idi avec
    puis faire un UPADTE
    pour que je puisse ajouter l'id au nom de l'image?

    Merci pour vos suggestions

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    Il faut savoir que lorsqu'on fait un upload il ya l'image qui est stocker dans le dossier image et le nom est stocker dans la base. Maintenant si tu dois modifier le nom dans la base il va falloir en même temps modifier le nom de l'image dans le dossier image.

    là je penses que c'est un peu compliquer. SI seulement on pouvait avoir ton script de traitement d'image, car tout ce passe dans le script.

    A force de creuser on trouve toujours
    www.1-terface.com

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    L'identifiant est une reference neutre par rapport aux données qu'il englobe.

    Si tu veux vraiment vraiment cependant le faire apparaitre, il serait plus economique et simple d'afficher champ id+champ nom que d'avoir dans la base id, id+nom
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Ben en fait, dans ma base de donnée je vais erigistrer des manifestations.
    Evidemment le champ id sera unique et propre a une manifestation.
    Les images uploadés dans le dossier images seront mélangés avec toutes les images.
    Le fait de faire le lien entre l'image ou les image avec l'enregistrement sera justement l'ID.

    Par exemple les images:
    31_dcs346.jpg
    31_dsc234.jpg
    31_dsc457.jpg

    seront liées avec la manifestation qui porte l'id 31

    Dans mon formulaire j'envoie au fichier php, qui fera l'enregistrement dans la base de donnée (INSERT). Ce fichier recuperera l'image dsc246, et les autres champs, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (isset($_POST['image']))? $img=$_POST['image'] : $img="";
    (isset($_POST['nom']))? $nom=$_POST['nom'] : $nom="";
     
    + tous les autres valeurs envoyé dans le formulaire
    une fois récupéré toutes les valeurs, je fais un INSERT dans ma base de donnée pour enregistrer les donnée

    Concernant mon image, j'ajouterais l'id de cette maniere par exemple:
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $img=$id;
    $img.=$img;
    quoi bref un truc du genre.

    Le problème, c'est que je dois connaire l'ID avant l'enregistrement, soit avant l'INSERT
    A moins qu'il y ait une autre solution?

    Si dans ma page web, je veux afficher les information de la manifestation qui porte l'id 31, je vais faire une boucle qui va lire le fichier /image et qui va afficher toutes les image qui commence par
    31_
    Voilà, l'idée.
    Mon problème donc est de savoir comment je devrais procéder sans faire trops de requete MSQL.

    En fait, dans ma base de donnée, j'aurais meme pas le nom de l'image dans le champs fd_image. J'aurais juste un '1', pour indiquer que des images ont été stockée dans le dossier /image.

    Mais, je dois recupérer l'ID de l'enregistrement, pour l'attribuer au nom de l'image (ou des images).

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi tu n'enregistres pas le nom de l'image et son evenement dans la base de donnée comme on le fait usuellement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    oui je comprend ta question.
    En fait je veux absolument utiliser une progress bar pour les upload de mes fichier.
    Pour cela, j'ai trouvé un truc de bien
    uploadify
    http://www.uploadify.com/
    qui va uploader l'image dans mon dossier /image..


    C'est vrai en écrivant cette réponse je réalise que ma téhorie ne va pas marché .

    Uploadify, va uploadé l'image bine avant que l'utilisateur va cliqué sur le bouton 'envoyer' de l'image.

    Arfff!!
    suis bete.

    Bref c'est pas très grave. Le nom de l'image uploadée sera envoyé par mon formulaire.

    Apres que mon script ait recupéré les valeurs envoyé par mon formulaire, le nom de mon image sera stockée dans la variable $_POST['image'], puis dans la variable $img

    Apres l'insertion des valeur dans ma base de donnée, je récupère l'id de mon enregistrement, je scan mon dossier /image et je PHP renome mon image avec 31_nomdelimage.

    Bref, je dois avoué que mon truc est un peu brancal.

    Grrrr.

    bref vous avez compris mon problème: l'image est enregistré dans mon dossier /image par uploadify avant qu'on ait envoyé les données d emon formulaire au script PHP, qui va les analyser et les enregistrer dans ma base de donnée...

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne vois toujours pas en quoi cela t'empeche de mettre le numero d'evenement dans son champ propre plutot que de l'incruster dans le nom du fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [MySQL] Vérifier l'existance d'une entrée avant l'insertion dans une BD
    Par mitchb dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/02/2008, 13h30
  2. Comment connaitre le nom d'une référence
    Par Tonio68 dans le forum Général VBA
    Réponses: 0
    Dernier message: 24/11/2007, 09h52
  3. Comment connaitre l'état d'une session windows ?
    Par TheFuzion dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/08/2006, 12h55
  4. Comment connaitre l'appelant d'une méthode
    Par Alec6 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 12/07/2004, 14h51
  5. Réponses: 1
    Dernier message: 12/05/2004, 19h02

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