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 :

Ajout BDD via formulaire unique avec 3 entités différentes


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de Projet et futur développeur web qui s'entraîne dur
    Inscrit en
    Avril 2016
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de Projet et futur développeur web qui s'entraîne dur

    Informations forums :
    Inscription : Avril 2016
    Messages : 49
    Par défaut Ajout BDD via formulaire unique avec 3 entités différentes
    Bonjour,

    Je me permets de vous demander votre aide par rapport a un soucis d'ajout à la BDD via 3 entités différentes, je ne sais pas du tout comment m'y prendre :

    Je m'explique :

    Dans ma page de vue client, il y a des informations sur le client, il y a en même temps des informations sur le projet, et des informations sur le rendez-vous les uns après les autres.
    Ma base de données est divisé en 3 tables.
    Dans le formulaire d'ajout ce sera pareil, il y aura tout ces éléments ci-dessus à remplir d'un coup pour ensuite envoyer via le seul bouton du formulaire tout en bas de page.

    J'ai actuellement 3 entités (client, projet, rendez-vous), et pour lire ces données, je passe bien par ces 3 entités dans mon contrôleur, et j'affiche à chaque fois les valeurs de la BDD en question en passant par l'entité en question :
    $client->...
    $projet->...
    $rendez-vous->...

    Cependant, lorsqu'il faut ajouter à la base de données, pour le moment j'ai toujours procédé via une entité unique et je ne sais pas trop comment m'y prendre.

    Voici ce que je fais habituellement pour exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        public function add(Project $project)
        {
            $db = $this->getDb();
            $add = $db->prepare('INSERT INTO project(project_id, customer_id, area, existing_support, project, color, price, description, status) VALUES(null, :customer_id, :area, :existing_support, :project, :color, :price, :description, :status)');
            $add->bindValue(':customer_id', $project->customerId());
            $add->bindValue(':area', $project->area());
            $add->bindValue(':existing_support', $project->existingSupport());
            $add->bindValue(':project', $project->project());
            $add->bindValue(':color', $project->color());
            $add->bindValue(':price', $project->price());
            $add->bindValue(':description', $project->description());
            $add->bindValue(':status', $project->status());
        }
    Avez-vous des pistes à me fournir pour avancer ?

    En vous remerciant d'avance pour vos retours et à bientôt !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si tu as 3 requêtes pour lire les données, 3 objets pour les transporter, 3 parties dans le formulaire pour les renseigner (fieldset est ton ami pour ce genre de choses), il va te falloir 3 requêtes pour les insérer/modifier en base.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Homme Profil pro
    Chef de Projet et futur développeur web qui s'entraîne dur
    Inscrit en
    Avril 2016
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de Projet et futur développeur web qui s'entraîne dur

    Informations forums :
    Inscription : Avril 2016
    Messages : 49
    Par défaut
    Merci pour ton retour,

    Ok, j'aurais pensé qu'il y aurait une recette miracle en SQL pour relier tout ça en un mais malheureusement ça aurait été trop beau

    De ce que je comprends avec le fieldset en lisant un peu, je peux entre autre "diviser" mon formulaire en 3 et l'utiliser bloc par bloc ?

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    SQL ne peut pas modifier plusieurs tables dans la même requête, donc tu es coincé.
    Fieldset, en l'occurrence, c'est plutôt du cosmétique, ça permet de diviser ton formulaire proprement au niveau de l'affichage. Je ne crois pas qu'il y ait d'impact au niveau du traitement par PHP.
    Les formulaires et PHP : <fieldset>, <legend> et <label>
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. [AC-2010] Ouverture formulaire unique avec différents noms de tables.
    Par Jeanpierre71 dans le forum IHM
    Réponses: 2
    Dernier message: 19/09/2012, 13h34
  2. [XL-2010] Ajout données via formulaire
    Par OliFossa dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 20/02/2012, 16h04
  3. Réponses: 4
    Dernier message: 30/08/2011, 18h30
  4. insert into bdd via formulaire
    Par adamas12 dans le forum Langage
    Réponses: 2
    Dernier message: 10/07/2011, 15h55
  5. [MySQL] insertion données dans BDD via formulaire
    Par stefanelle dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/02/2009, 10h51

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