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 :

boucle for dans foreach


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Points : 122
    Points
    122
    Par défaut boucle for dans foreach
    bonjour,

    je bloque sur une incrémentation

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    foreach($list as $valeur)
     {
     
                    foreach($valeur as $cle=>$val)
                            {
     
     
                                  try{  
                                            $model_stat->save($val,$i);
                                    }catch(Exception $e){
                                            $message=Zend_Debug::dump($e,'e');
                                    }
                            }
       }
    et la function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function save($data1,$inc)
    {
                    // On récupère les données et insertion après (nom de champ => valeur postée)
                    $data = array('text_value'=> $data1,'id_column'=>$inc);
                     $this->insert($data);                 
    }
    le probleme que c'est que je 'arrive pas à incrémenté par de 1 à 5 par exemple ou ce que je veux la variable $i
    j'ai essayer de mettre for($i=0;$i<6;$i++) avant le try mais ça execute 5 fois une insertion c'est a dire la fonction est executé 5 fois pour une seul ajout

    je voudrais qu'a chaque insertion, $inc s'incrémente de 1 à 5 par exemple

    comment eviter cela , ou est ce que je doit gérer cette incrémentation pour eviter une execution comprise entre la boucle for

    merci beaucoup

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour, soit pus clair, pourquoi veux-tu incrémenter une variables à quoi va te servir cette variable ??

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour à tous,

    je voudrais qu'a chaque insertion, $inc s'incrémente de 1 à 5 par exemple
    Tu veux que les indices de colonnes s'incrémentent de 1 à 5, puis repassent à 1 etc ... ????
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #4
    Membre régulier Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Points : 122
    Points
    122
    Par défaut
    bonjour,

    Cette variable est la clé étrangère d'une table qui stocke les colonnes.

    Mes colonnes sont stockés en ligne dans une table

    donc un enregistrement de $val correspondra à un id par exemple 1 ou 2 ou 3 d'une la table colonne

    j'espère que je me suis fais comprendre

    colonnes
    id value
    1 id
    2 nom
    3 prenom


    j'ai trouvé la réponse

    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
    foreach($list as $valeur)
     {
                   $i= 1;
                    foreach($valeur as $cle=>$val)
                            {
     
     
                                  try{  
                                            $model_stat->save($val,$i);
                                    }catch(Exception $e){
                                            $message=Zend_Debug::dump($e,'e');
                                    }
                      $i++;
     
                           }
       }
    au lieu de faire une boucle for

    j'ai juste mis $i=1; et $i++ dans le boucle foreach


    merci beaucoup

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Ahhh oui, moi j'étais resté bloqué sur le 1 à 5 or c pas le cas

    Sinon,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $model_stat->save($val,$i++);
    Si try qui passe pas évite un décalage (non là je sais pas)
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  6. #6
    Membre régulier Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Points : 122
    Points
    122
    Par défaut
    Oui ,

    j'ai tester un ça marche pour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $model_stat->save($val,$i++);

    il vaudrait mieux mettre l'incrémentation dans le try ...

    Oui je vais essayer ça


    merci bien

  7. #7
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    On pourrait aussi imaginer $i comme une variable static dans l'objet $model_stat.
    Ainsi, il se chargerait de sa propre incrémentation et ne dépendrait pas du code externe.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

Discussions similaires

  1. Réponses: 18
    Dernier message: 25/07/2007, 12h34
  2. Une boucle for dans un switch case?
    Par Death83 dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2006, 14h05
  3. Boucle For dans un TDBGrid
    Par Latipolia dans le forum C++Builder
    Réponses: 28
    Dernier message: 14/06/2005, 12h12
  4. boucle for dans un if...
    Par SylverFox dans le forum Débuter
    Réponses: 3
    Dernier message: 11/08/2004, 16h57
  5. Boucle for dans un script cmd
    Par nicolas.ganache dans le forum Développement
    Réponses: 4
    Dernier message: 19/07/2004, 16h07

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