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] construction tableau multidemention dynamique dans boucle for


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut [Tableaux] construction tableau multidemention dynamique dans boucle for
    Bonjour,

    Je cherche a généré dynamiquement un tableau a multidimention et je sèche pour l'incrementation des clés

    voila moin code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    for($i=0;$i<$n;$i++){		
       for($j=0; $j<$nb; $j++){
           $SQL = "SELECT ...";      	
           $tab = mysql_query($SQL,$this->DbConnect());
           $rows = mysql_num_rows($tab);					
    	if ($rows){						
    	    $this->elt_version[$i] = $this->var1[$i];
    	    $this->elt_module[$i][$j] = $varb[$j];
    		...							} 
           }	
     }
    Avec ce code la composition de mes tableaux est coorecte mais la valeur des clé n'est pas bon.

    j'obtiens par exemple

    $array[0][0]
    $array[0][3]
    $array[0][10]

    $array[2][1]
    $array[2][3]
    $array[2][10]


    et je voudrais avoir

    $array[0][0]
    $array[0][1]
    $array[0][2]

    $array[1][0]
    $array[1][1]
    $array[1][2]


    mais je ne sais pas comment faire pour gerer les cle des différent niveau

    merci de votre aide

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    le tableau dont tu nous montre les résultats, c'est
    $this->elt_module ?

    si oui, alors ça devrait afficher ce que tu souhaites.
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    oui c'est bien $this->elt_modue et c'est ce que je disais ça affiche ce que je veux, mais ce sont la valeur des clé qui se vont pas. celle que j'obtiens ne me permette pas d'afficher correctement ma vairaible dans une section de template smarty. Il faut abslument que les clé se suive, contrairement à ce que j'ai en utlisant $i et $j en clé

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    il doit manquer qq chose, car dans le code que tu montres, la seule opération qu'on voit sur $j est le $j++ de la boucle for, je ne comprend pas d'ou viennent tes 0, 3 et 10 dans tes index.

    Il y a forcement qq part une opération sur le $j.
    Vais avoir besoin de l'intégralité du code dans tes boucles for pour t'aider.
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    T'es sur que ton if($rows) ne te retourne pas des 0 de temps en temps ?
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    hoooo, c'est pas bète ça non plus
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  7. #7
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    Si c'est bien mon $rows qui retourne parfois 0 qui bouscule l'ordre des clé et me pose problèmes .

    et je ne vois pas comment faire une autre incrémetation.

    Maintenant j'ai pense changer de système et definir mes cle en allant chercher la valeur de la dernière que j'incrémenterai de 1 mais avec array_searche je n'y arrive pas...

    je ne sais pas comment procéder autrement

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    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
    16
    17
     
    $k = 0; $l = 0;
    for($i=0;$i<$n;$i++){ 
       $k++;		
       for($j=0; $j<$nb; $j++){
           $SQL = "SELECT ...";      	
           $tab = mysql_query($SQL,$this->DbConnect());
           $rows = mysql_num_rows($tab);					
    	if ($rows){
     
    	    $this->elt_version[$k] = $this->var1[$i];
    	    $this->elt_module[$k][$l] = $varb[$j];
    		... 
                     $l ++;
    	} 
           }	
     }
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  9. #9
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for($i=0;$i<$n;$i++){		
       for($j=0; $j<$nb; $j++){
           $SQL = "SELECT ...";      	
           $tab = mysql_query($SQL,$this->DbConnect());
           $rows = mysql_num_rows($tab);					
    	if ($rows){						
    	    $this->elt_version[$i] = $this->var1[$i];
    	    $this->elt_module[$i][] = $varb[$j];
    		...							} 
           }	
     }
    devrait passer
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  10. #10
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    for($i=0;$i<$n;$i++){
    for($j=0; $j<$nb; $j++){
    $SQL = "SELECT ...";
    $tab = mysql_query($SQL,$this->DbConnect());
    $rows = mysql_num_rows($tab);
    if ($rows){
    $this->elt_version[$i] = $this->var1[$i];
    $this->elt_module[$i][] = $varb[$j];
    ... }
    }
    }
    $k = 0; $l = 0;
    for($i=0;$i<$n;$i++){
    $k++;
    for($j=0; $j<$nb; $j++){
    $SQL = "SELECT ...";
    $tab = mysql_query($SQL,$this->DbConnect());
    $rows = mysql_num_rows($tab);
    if ($rows){

    $this->elt_version[$k] = $this->var1[$i];
    $this->elt_module[$k][$l] = $varb[$j];
    ...
    $l ++;
    }
    }
    }

    vos réponses me permettre de voir qu'il manque un élémént dans mon algorythme, pour le second niveau de tableau cad la boucle $j , je vais pouvoir faire l'incrémentation comme vous me l'avez montrer.

    Maintenant je dois incrementer $k dans ma boucle $j que si j'ai eu au moin un fois une réponse a ma requete SQL cad dire que je met une version que si j'ai garder au moin un module.

    J'epère être claire....

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/08/2006, 19h24
  2. problème dans boucle for de lecture de fichier ini
    Par chourmo dans le forum Delphi
    Réponses: 3
    Dernier message: 06/07/2006, 09h31
  3. Réponses: 4
    Dernier message: 19/05/2006, 14h30
  4. [FLASH MX2004 PRO] Ciblage dynamique dans boucle
    Par guy2004 dans le forum Flash
    Réponses: 8
    Dernier message: 28/02/2006, 10h04
  5. [JLabel] JLabel dans boucle for
    Par clairenes dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/01/2006, 00h47

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