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

ORM PHP Discussion :

Insertion générique et massive en base


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut Insertion générique et massive en base
    Salut à tous,

    J'aimerai faire la chose suivante :

    Je parse un fichier XML , pour chaque tour de boucle j'obtiens :
    - La balise mère
    - Les balises filles
    - Les valeurs des balises filles

    Même si le nom n'est pas le même dans la BD voici ce que chaque balise représentent :

    -La balise mère correspond a une table en BD
    -Les balises filles au nom des colonnes que je compte remplir
    -Les valeurs des balises filles correspondent au valeurs de l'enregistrement que je veux insérer.

    Le but sera évidement d'alimenter la base avec ce fichier XML.

    Alors au départ voila ce que sur quoi j'étais parti :
    Je créer une classe ( contenu statique ) contenant pour chaque table :
    Un tableau avec
    - Le nom de la table associée en base sous l'index 'TABLE'
    - Le nom des attributs en base sous l'index du nom des balises filles

    Voici l'exemple sans doute plus parlant : Je voudrais inserer une instance de Input a partir des données suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <INPUTS>
                <TYPE>Keyboard</TYPE>
                <MANUFACTURER />
                <CAPTION>Étendu (101 ou 102 touches)</CAPTION>
                <DESCRIPTION>Standard PS/2 Keyboard</DESCRIPTION>
                <INTERFACE />
                <POINTTYPE />
    </INPUTS>
    Dans ma classe statique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static $INPUTS = array('TYPE'=>'type', 'MANUFACTER'=>'marque', 'DESCRIPTION'=>'description', 'INTERFACE'=>'interface', 'POINTTYPE'=>'pointeur_type') ;

    Le souci c'est que je viens de voir comment Doctrine créée un enregistrement : Du coup je ne sais pas du tout comment adapter mon code qui se voudra générique afin d'insérer indifféremment une instance Input ou Ordinateur ou etc .....

    Si l'un de vous a une idée, solution, ou connait un autre moyen d'insérer en base de manière plus adaptée.
    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut
    Bon j'ai trouvé une solution via un tableau à index associatif a deux dimensions.

    Mais un souci s'inscrit dans cette suite direct , j'ai pu ajouter mon instance INPUT via cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	public static function InsertionEnregistrement($balise_mere , $structure_balise) 
    	{
    		switch ($balise_mere) 
    		{
    			case "INPUTS":
    			  	$input = new Input();
    			  	$input->type = $structure_balise["$balise_mere"]["TYPE"] ; 
    			  	$input->marque = $structure_balise["$balise_mere"]["MARQUE"] ;
    			  	$input->description = $structure_balise["$balise_mere"]["DESCRIPTIOn"] ;
    			  	$input->interface = $structure_balise["$balise_mere"]["INTERFACE"] ;
    			  	$input->pointeur_type = $structure_balise["$balise_mere"]["POINTTYPE"] ;
    			  	$input->save();
    			    break;
    		}
    	}
    L'id de l'instance est attribuée de manière automatique, mais j'aimerai la récupérer immédiatement afin de créer les liaisons many to many dans la foulée. Donc ma question pour résumer : comment récupérer la clé d'une instance que l'on vient d'ajouter sans la renseigner ?

    Cordialement.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut
    Comment récupérer l'id d'une instance ajoutée en base :


Discussions similaires

  1. Réponses: 3
    Dernier message: 27/03/2006, 17h25
  2. [MySQL] Insertion d'image dans une base de données
    Par dragonfly dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/03/2006, 14h59
  3. [MySQL] insertion d'une image en base de données
    Par SENCABOY dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/02/2006, 11h07
  4. Réponses: 11
    Dernier message: 01/06/2005, 15h18
  5. [Debutant]Insertion nulle mais '' dans la base
    Par Tchinkatchuk dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 18/04/2005, 09h58

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