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

SGBD Perl Discussion :

Tableaux associatifs et requêtes


Sujet :

SGBD Perl

  1. #1
    LFC
    LFC est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Par défaut Tableaux associatifs et requêtes
    Bonjour,

    Je dispose d'un tableau associatif que je remplis après une req mysql

    la req est :
    "select valeur1, champ1, champ2, champ3 from latable where ....."

    Puis, tout de suite après je veux mettre les infos recueillies dans des tableaux associatifs qui sont comme ceci :
    $tableau{champ1}{champ2}{$champ3}{balise}=+$valeur

    Donc, la valeur de "$tableau{champ1}{champ2}{$champ3}{balise}" augmente selon le $valeur, n'est ce pas ?

    Ma question est :

    Comment faire pour qu'à la fin de tout mon script, tout ce que j'ai mémorisé je puisse l'insérer dans une table de la manière suivante :
    "insert into table values a=$champ1, b=$champ2, c=champ3" ??

    j'ai beau essayé "foreach my $champ1 (keys %tableau){ requete insert" les données ne ressortent pas...

    Merci de votre aide.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    tu dois te perdre dans ton hash complex. Relis dans la FAq la partie des references. ça pourra t'eclairer sur l'utilisation des hash de tableau etc

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Par défaut
    en fait ton $tableau{champ1}{champ2}{$champ3}{balise} il faut que tu le vois comme ca:
    $tableau{champ1}->{champ2}->{$champ3}->{balise}

    chaque entrée contient une reference vers un autre hash.

    Sinon dans ton post je ne sais pas si c'st une faute de frappe mais tu a ecrit =+ au lieu de +=

  4. #4
    LFC
    LFC est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Par défaut
    Merci, je vais lire plus la doc et reviens vers vous.

  5. #5
    LFC
    LFC est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Par défaut
    Bon, toujours pas...

    Les tableaux associatifs, ça m'a l'air bien compliqué...

    Faisons simple au début.

    comment afficher toute la liste des variables qui sont dans le tableau ?

    J'ai essayé d'imbriquer des foreach mais ça ne fait rien...

    J'ai testé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach (keys %tableau){
        foreach (keys %tableau){
    print "$tableau{$champ1}{$champ2}{$champ3}{balise1}\n";
    }
    }
    et ça n'affiche rien...

    Pourtant le même print un peu plus haut dans le code (juste après un while qui mémorise les données) confirme qu'il y a bien des données à l'intérieur, mais je n'arrive pas à isoler cet affichage à la fin de mon code...

    Une idée ?

  6. #6
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Ta boucle externe doit bien être sur les clefs de %tableau, mais la boucle à l'intérieur doit être sur les clefs de %tableau{$clef}, et la boucle suivante sur les clefs du hachage de niveau inférieur, etc.

    Dans la forme, plutôt quelquechose dans cet esprit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach my $clef1 (keys %tableau){
        foreach my $clef2 (keys %tableau{$clef1}){
            ...
            print "$tableau{$clef1}{$clef2}{$clef3}{balise1}\n";
        }
    }
    Sinon, pour une introspection complète de la structure, le module Data:umper est très pratique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    use Data::Dumper;
     
    print Dumper(%tableau);

Discussions similaires

  1. Définition "inline" de tableaux associatifs.
    Par Blustuff dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2010, 13h49
  2. Réponses: 9
    Dernier message: 13/06/2006, 21h52
  3. [Conception] Utiliser les fonctions des tableaux ou plusieurs requêtes ?
    Par Derik dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/02/2006, 09h54
  4. [8i] tableaux associatifs de VARCHAR2
    Par Magnus dans le forum Oracle
    Réponses: 2
    Dernier message: 26/01/2006, 16h41
  5. [Collections]Tableaux associatifs
    Par sheura dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 18/12/2005, 14h10

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