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

Langage PHP Discussion :

[Tableaux] problème de création d'un tableau bidimensionnel


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut [Tableaux] problème de création d'un tableau bidimensionnel
    Bonjour à tous,

    Voila mon soucis :


    Comment insérer dans un tableau(ex: $tab->Ajoutvaleur(1,1,$toto1[0]) ajoute la valeur de $toto1[0] à la ligne 1 colonne 1 ) le résultat d'une requete contenant plusieurs valeurs ?

    Je m 'explique, le résultat de ma requete est sous forme d array ($toto1)

    print_r($toto1); // affiche: Array ( [0] => 0 [1] => 0 [2] => 0 ) Array ( [0] => 64 [1] => 0 [2] => 0 ) Array ( [0] => 30 [1] => 0 [2] => 0 ) Array ( [0] => 121 [1] => 0 [2] => 0 ) Array ( [0] => 258 [1] => 0 [2] => 0 ) Array ( [0] => 473 [1] => 0 [2] => 0 )

    et print_r($toto1[0]);//affiche: 06430121258473

    Je voudrais insérer les valeurs 0,0,0 64,0,0 121,0,0 258,0,0 473,0,0 dans un tableau mais comment accéder à ces informations??? ($toto1[0][0] n affiche pas 64)


    Merci à vous

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je trouve étrange le résultat de ton print_r (qui n'indique pas à quel indice correspond chaque tableau) mais de toute facon $toto1[0][0] doit afficher 0, c'est $toto1[1][0] qui afficherait 64

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut re
    non en fait $toto1[1][0] affiche 000000
    Mais je me demande si j ai à faire à un tableau à 2 dimensions ca ren fait la il va chercher toutes les valeurs à l indice 1 cad si tu regardes en haut 000000 dc c ca que je comprends pas j arrives pas à accéder à ses valeurs

    Merci pour ta réponse

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Disons que ton dump ressemble pas vraiment a un tableau là je me serai plutot attendu a ca :

    Array( [0] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [1] Array ( [0] => 64 [1] => 0 [2] => 0 ) etc.)

    D'ou vient ce résultat?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut re
    c' est le résultat d une requete sql qui donne le tableau

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    oui mais est ce que je peux voir le code ? Ca ne serait pas le print_r de la variable retournée par un mysql_query() par hasard?
    Si c'est le cas, il faut d'abord utiliser les fonctions de fetch de mysql (mysql_fetch_assoc() serait-utile dans ton cas).

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $rq = "SELECT nbvides, nbcharges, nbveh FROM statistiques";
    		$rq.=" WHERE login='jpl' order by categorie";
    		$bdd = new BDOracle8(VAR_USER, VAR_MOT_DE_PASSE, VAR_SID, "");
    		$res=$bdd->execRequete($rq);
    		while ($toto1 = $bdd->tableauSuivant($res)) {	
    		print_r($toto1[1][0]);
    		}

    En fait tableauSuivant est une fonction qui va faire le meme role que mysql_fetch_array mais avec oracle donc je pense bien parcourir le tableau de resultats

  8. #8
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par lorenbarre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $rq = "SELECT nbvides, nbcharges, nbveh FROM statistiques";
    		$rq.=" WHERE login='jpl' order by categorie";
    		$bdd = new BDOracle8(VAR_USER, VAR_MOT_DE_PASSE, VAR_SID, "");
    		$res=$bdd->execRequete($rq);
    		while ($toto1 = $bdd->tableauSuivant($res)) {	
    		print_r($toto1[1][0]);
    		}

    En fait tableauSuivant est une fonction qui va faire le meme role que mysql_fetch_array mais avec oracle donc je pense bien parcourir le tableau de resultats
    Effectivement, mais tu fais une succession de print_r, c'est pas UN print_r qui affiche tout le résultat ce qui explique ton probleme.

    fais qqch comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $rq = "SELECT nbvides, nbcharges, nbveh FROM statistiques";
    		$rq.=" WHERE login='jpl' order by categorie";
    		$bdd = new BDOracle8(VAR_USER, VAR_MOT_DE_PASSE, VAR_SID, "");
    		$res=$bdd->execRequete($rq);
    		$toto1 = array(); // cree un tableau
    		while ($result = $bdd->tableauSuivant($res)) {	
    		$toto1[] = $result; // Ajoutes le résultat a mon tableau
    		}
    print_r($toto1);
    Ca va t'ajouter chaque ligne de résultat dans ton tableau $toto1 (donc a $toto1[0] puis $toto1[1] etc.)
    Et chaque ligne de ce tableau est en fait un tableau associatif (et donc un tableau a deux dimensions).

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut re
    j ai test é et ca m affiche ca



    Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [1] => Array ( [0] => 64 [1] => 0 [2] => 0 ) [2] => Array ( [0] => 30 [1] => 0 [2] => 0 ) [3] => Array ( [0] => 121 [1] => 0 [2] => 0 ) [4] => Array ( [0] => 258 [1] => 0 [2] => 0 ) [5] => Array ( [0] => 473 [1] => 0 [2] => 0 ) )

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    merci de ton aide ca marche

    génial

  11. #11
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par lorenbarre
    j ai test é et ca m affiche ca

    Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [1] => Array ( [0] => 64 [1] => 0 [2] => 0 ) [2] => Array ( [0] => 30 [1] => 0 [2] => 0 ) [3] => Array ( [0] => 121 [1] => 0 [2] => 0 ) [4] => Array ( [0] => 258 [1] => 0 [2] => 0 ) [5] => Array ( [0] => 473 [1] => 0 [2] => 0 ) )
    Voila maintenant tu as vraiment un tableau a deux dimensions.

    $toto1 a un nombre de lignes correspondant au nombre de résultat de ta requete, chaque ligne correspond a un résultat : premier résultat dans $toto1[0].

    Ensuite chaque ligne de $toto1 correspond a un tableau lui aussi représentant les colonnes de ton résultat.

    donc $toto1[0][0] correspond à la premiere colonne du premier résultat de ta requete. $toto[4][2] correspond à la troisième colonne du cinquième résultat de ta requete. Tu peux donc les modifier simplement en faisant par exemple

    $toto1[1][2] = 10

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

Discussions similaires

  1. Problème de création d'un tableau dynamique
    Par FunckyWarrior dans le forum Android
    Réponses: 22
    Dernier message: 02/08/2013, 09h25
  2. Problème de création d'un tableau
    Par fog4000 dans le forum LabVIEW
    Réponses: 7
    Dernier message: 04/06/2007, 14h53
  3. [Tableaux] Problème de service web et tableau
    Par hxt dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2006, 09h33
  4. [Tableaux] Problème de valeur dans un tableau (array)
    Par Flushovsky dans le forum Langage
    Réponses: 15
    Dernier message: 24/03/2006, 13h56
  5. Réponses: 2
    Dernier message: 19/12/2005, 12h23

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