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 :

Faire un array sur un while


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Par défaut Faire un array sur un while
    Bonsoir,

    J'ai fais une boucle while pour construire des post que j'envoie à une page, mais je voudrais les récupérer un par un, genre valeur1, valeur5, et pas forcément dans l'ordre de la boucle.

    J'ai tenté un array mais apres valeur[0] j'ai des valeurs null.

    Mon code qui fonctionne (sans ARRAY)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php 
    $nbre_col=$_POST['nbre_col'];
    $i = 0;
    while ($i <= $nbre_col-2) {
    $i++;
    if (isset($_POST['valeur'.$i]))echo $_POST['valeur'.$i];
    }
    ?>
    Donc j'ai remplacé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST['valeur'.$i];
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau=array($_POST['valeur'.$i]);
    Mais ça ne fonctionne pas.
    Ou alors existe t'il une autre méthode ?

    Merci d'avance.
    Cordialement.

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Avec ta syntaxe, tu écrases à chaque fois un tableau d'un seul élément.
    Voilà ce qu'il te faut faire :

    Au début, tu déclares ton tableau
    Dans la boucle, tu as deux façons de le remplir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //méthode 1
    array_push($tableau,$_POST['machin']);
    //méthode 2
    $tableau[$i]=$_POST['machin'];
    Et après la boucle, pour voir ce qu'il a dans le ventre, fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    var_export($tableau);
    echo '</pre>';
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Par défaut
    Merci pour tes propositions mais ça ne fonctionne pas.

    Les 2 méthodes me retourne : array()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php 
    $nbre_col=$_POST['nbre_col'];
    $tableau=array();
    $i = 0;
    while ($i <= $nbre_col-2) {
    $i++;
    if (isset($_POST['valeur'.$i]))$tableau[$i]=$_POST['valeur'.$i];
    }
    echo var_export($tableau); // array()
    ?>
    et si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_dump(var_export($tableau)); // array ( )NULL
    ça donne array ( )NULL

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Bah utilises soit "var_export" soit "var_dump" mais pas les deux.

    Pour le reste si cela ne fonctionne pas c'est qu'il y a un pb quelque part dans tes conditions ou dans tes valeurs mais si ton premier code (sans array) fonctionnait, il n'y a pas de raison que celui-ci ne fonctionne pas.
    Fais afficher les variables dans ta boucle pour contrôle (y compris $i) pendant la phase de débuggage.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Par défaut
    merci à tous, je passe en résolu. (je passais valeurs à la place de valeur)

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

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 13h45
  2. faire un Query sur un Query ?
    Par davestar dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2004, 13h30
  3. est il possible de faire un trie sur un paramètre donné
    Par chtiboss dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/03/2004, 12h51
  4. [VB.Net] Faire du JS sur des contrôles côté serveur
    Par TagadaTsoin dans le forum ASP.NET
    Réponses: 4
    Dernier message: 03/11/2003, 16h51
  5. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 11h31

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