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 :

Parcourir array de array pour enregistrement BDD [PHP 5.1]


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Parcourir array de array pour enregistrement BDD
    Bonjour

    J'ai un peu de mal concernant mon script PHP. Ce sont des bouts de codes que je dois reprendre, et qui sont parfois très mal conçus...

    J'ai un formulaire créé dynamiquement (jQuery inside). Par exemple, j'aurais un premier fieldset avec un certains nombre d'éléments, un deuxième de la même forme etc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <fieldset id="1">
       <input type="text" value="" name="nom[]" />
       <input type="text" value='' name="age[]" />
    </fieldset>
     
    <fieldset id="2">
       <input type="text" value="" name="nom[]" />
       <input type="text" value='' name="age[]" />
    </fieldset>
    Maintenant, j'aimerais pouvoir récupérer les informations saisies afin de les enregistrer dans une BDD.
    pour cela, je les parcoure à l'aide de foreach, mais il n'agit pas comme je souhaite. La faute au tableau envoyé qui est de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array( [nom]=>Array([0]=>"nom1" [1]=>"nom2")  [age]=>Array([0]=>18 [1]=>20) )
    Et que je n'arrive pas à traiter.

    Si il avait été de la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array( [0]=>Array([nom]=>"nom1" [age]=>18)  [1]=>Array([nom]=>"nom2" [age]=>20) )
    j'y serais arrivé sans soucis.


    Si quelqu'un peut m'aider, je suis preneur, Je continue à chercher de mon côté, mais pour l'instant ça ne donne pas de résultats. C'est la première fois que j'ai à traiter un tableau de cette forme.

    Merci d'avance !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 39
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    Une petite remarque pour commencer : je ne sais pas comment jQuery génère ses formulaires mais je suis sceptique sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="nom[]" et "age[]"
    ... il faut être sur que du coté serveur nom[x] et age[x] correspondent bien au données du même fieldset... bref la n'est pas la question


    Pour ton problème, tu as plusieurs solutions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach($_POST['nom'] as $id=> $nom)
    {
        $nom;// correspond à ton nom
        $_POST['age'][$id] // corespond à ton age
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $count = count($_POST['nom']);
    for($i = 0 ; $i<$count ; $i++)
    {
       $_POST['nom'][$i];// corespond à ton nom
       $_POST['age'][$i];// corespond à ton age
    }
    En espérant que ça t'aide,
    Gwendal

  3. #3
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut iGwendal,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nom;// Une faute de frappe ?
    $_POST['age'][$id];
    $nom comme instruction génèrera probablement une erreur.
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 39
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    salut iGwendal,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nom;// Une faute de frappe ?
    $_POST['age'][$id];
    $nom comme instruction génèrera probablement une erreur.
    Boarf, mon code montre comment récupérer le nom ($nom) et l'age ($_POST['age'][$id]) à partir du tableau, après il met le code qu'il veut dans la boucle...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par iGwendal Voir le message
    Bonjour,

    Une petite remarque pour commencer : je ne sais pas comment jQuery génère ses formulaires mais je suis sceptique sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="nom[]" et "age[]"
    ... il faut être sur que du coté serveur nom[x] et age[x] correspondent bien au données du même fieldset... bref la n'est pas la question


    Pour ton problème, tu as plusieurs solutions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach($_POST['nom'] as $id=> $nom)
    {
        $nom;// correspond à ton nom
        $_POST['age'][$id] // corespond à ton age
    }
    Cette solution semble fonctionner. Je vais vérifier l'ensemble des données pour être sûr.

    Concernant les nom[]... moi même je ne comprend pas vraiment le sens de cette syntaxe. Seulement le code récupéré était sous cette forme (c'est un code interne que je dois réadapter), et dans le doute j'ai préféré le laisser tel quel.

    Par contre, je serais intéressé de savoir comment je peux différencier les différents fieldset.
    Etant donné que j'en ai un "commun", qui applique donc ses informations à tout les autres fieldset, ça m'aiderai bien

    Merci pour votre aide !

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

Discussions similaires

  1. array of string pour items Combobox
    Par BuzzLeclaire dans le forum Langage
    Réponses: 5
    Dernier message: 30/06/2009, 10h21
  2. [MySQL] Arborescence pour enregistrer ds BDD
    Par djoumusic dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 11/07/2008, 00h15
  3. Incrémenter une lettre pour enregistrement dans une bdd
    Par baggie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2008, 16h26
  4. [Flash] [FAQ] Comment parcourir facilement un ARRAY ou un OBJECT
    Par jean philippe dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/10/2006, 21h06
  5. créer bouton pour enregistrer BDD sur une page
    Par guimauve dans le forum Access
    Réponses: 3
    Dernier message: 11/07/2006, 11h01

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