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

PHP & Base de données Discussion :

Tableaux associatifs gestion des indices


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut Tableaux associatifs gestion des indices
    Bonjour à tous ,
    je dispose d'une BDD dont les contenus de champ possèdent 2 valeurs possible : 'O' et 'N'
    Je récupère mes données puis sélectionne les champs qui m"intéressent (contenant la valeur 'O')
    Pour cela j'utilise la syntaxe des tableaux associatifs afin de récupérer la clé du champ ainsi que sa valeur
    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
    15
    16
    17
    18
    19
    20
    21
     
    <?php
        echo $_POST['service'];
        $bdd = new PDO('mysql:host=localhost;dbname=TRACABILITE','Philippe','');
        $req = $bdd->query('SELECT * FROM Todo');
    ?>
    </p>
    <?php
        $donnees = $req->fetch();
        echo $donnees['lieu'];
        echo '<form action="recap.php" method="post">';
        foreach($donnees as $cle => $element)
        {
            if ($element == 'O')
            {
                echo '<input type="checkbox" name="' . $cle . '" id="' . $cle . '"/>';
                echo '<label for="' . $cle .'">' . $cle . '</label>';
            }
        }
        $req->closeCursor();
    ?>
    Le problème c'est que ça double tous les champs ??
    Les champs contenant 'O' sont sélectionnés 2 fois ?
    Je ne comprends pas pourquoi ....
    Pourrait-on m'expliquer

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 091
    Points : 8 194
    Points
    8 194
    Billets dans le blog
    17
    Par défaut
    Sûrement parceque ton PDO est configuré pour donner un résultat avec index et clef (comportement par défaut PDO::FETCH_BOTH, voir https://www.php.net/manual/fr/pdostatement.fetch.php )

    Configure le pour la clef uniquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    PS : si seuls les "O" t'intéressent tu peux filtrer dès le WHERE SQL
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

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

Discussions similaires

  1. [Débutant] Collection et gestion des indices
    Par Mélodie_et_rythmes dans le forum VB.NET
    Réponses: 3
    Dernier message: 24/08/2012, 11h04
  2. Tri de tableaux avec mémorisation des indices
    Par mlny84 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/12/2007, 11h57
  3. Bibliothèque C pour la gestion des tableaux
    Par alphalog dans le forum C
    Réponses: 13
    Dernier message: 19/04/2007, 19h11
  4. Réponses: 6
    Dernier message: 21/08/2006, 10h01
  5. [Tableaux] gestion des connexions
    Par zahiton dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 14h37

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