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 :

<select> et lire les données une part une de la bdd [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut <select> et lire les données une part une de la bdd
    bonjour à tous,

    j'aurais aimé avoir de l'aide concernant ceci:

    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
     
    <?php
    $affichage_produit = $bdd->prepare('SELECT nom_produit FROM produit WHERE id_produit=20 ');
    $resultat_select = $affichage_produit->execute();
    $row = $affichage_produit->fetch(PDO::FETCH_NUM);
     
    $produit=$row[0];
     
    echo "<select>";
    echo '<option name="id_20" value="">'.$produit.' ';
    echo '<option name="id_21" value="">smart enterprise start mosito';
    echo '<option name="id_22" value="">smart enterprise lite mosito';
    echo '<option name="id_23" value="">smart enterprise comfort mosito';
    echo '<option name="id_24" value="">smart enterprise intense mosito';
    echo '<option name="id_25" value="">smart enterprise intense +';
    echo '<option name="id_26" value="">smart enterprise europe mosito';
    echo "</select>";
    donc mon code récupère bien l'id ce n'est pas un soucis, le soucis:

    - j'ai déjà testé avec une boucle WHILE pour récupérer ces données, le soucis c'est que cela ne s'affiche qu'avec une seule variable.
    - y a t'il moyen de récupérer ces données-ci, sans interroger la bdd plusieurs fois comme je fais actuellement et sans avoir 1 seule variable.

    explication:

    j'aimerais avoir un code comme ceci:

    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
     
    <?php
    $affichage_produit = $bdd->prepare('SELECT nom_produit FROM produit WHERE id_produit=20 ');
    $resultat_select = $affichage_produit->execute();
    $row = $affichage_produit->fetch(PDO::FETCH_NUM);
     
    $ligne1_bdd_de_nom_produit=$row;
    $ligne2_bdd_de_nom_produit=$row;
    (ainsi desuite)
     
    echo "<select>";
    echo '<option name="id_20" value="">'.$ligne1_bdd_de_nom_produit.' ';
    echo '<option name="id_21" value="">'.$ligne2_bdd_de_nom_produit.' ';
    echo '<option name="id_22" value="">smart enterprise lite mosito';
    echo '<option name="id_23" value="">smart enterprise comfort mosito';
    echo '<option name="id_24" value="">smart enterprise intense mosito';
    echo '<option name="id_25" value="">smart enterprise intense +';
    echo '<option name="id_26" value="">smart enterprise europe mosito';
    echo "</select>";
    donc j'aimerais récupérer UNE par UNE chaque ligne de ma bdd de la colonne "nom_produit" en ayant une variable différente pour chaque ligne récupérée.

    pourriez-vous m'aider s'il vous plait?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    $sth = $bdd->query('SELECT id_produit, nom_produit FROM produit');
     
    echo '<select>';
     
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
          echo '<option value="' . $row['id_produit'] . '">'. htmlspecialchars($row['nom_produit']) . '</option>';
    }
     
    echo '</select>';
    Pas besoin de prepare() puisque tu n'as pas de paramètre.
    Pas besoin d'un "name" sur les balises <option> ; par contre il faut leur mettre une valeur et les fermer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    bonjour sabotage,

    j'ai repris ton code en ayant fait une petite modification:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sth = $bdd->query('SELECT id_produit, nom_produit FROM produit WHERE description_produit="approbation"');
     
    echo '<select>';
     
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        echo '<option value="' . $row['id_produit'] . '">'. htmlspecialchars($row['nom_produit']) . '</option>';
    }
    echo '</select>';
    donc là j'ai bien toutes mes lignes qui ont comme description "approbation".

    imaginons que je n'ais que 2 lignes:

    1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mobile voice value pack me rc2/0
    et
    2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    smart enterprise start mosito
    si je veux sélectionner le sélect n°2, et qu'il s'enregistre dans ma bdd, ça ne saurait pas le faire vu que c'est la même variable...
    à moins que, vu qu'il y a [id_produit], en faite chaque produit à son id à chaqu'un de mes sélects, donc même si je sélectionne sur mon formulaire le ligne x, l'id est différent.... j'ai bien compris?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est bien ça : chaque <option> a pour "value" l'id d'une ligne dans la base de donnée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Par contre, il faut un name au select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<select name="id_produit_choisi">';

  6. #6
    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
    Une technique pour s'assurer que tout est bon et de vérifier le code HTML généré en inspectant le code (ctrl + u sous Firefox par exemple).

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je pense surtout qu'il faut apprendre les BASES des formulaires en PHP :


  8. #8
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    concernant les name etc...je connais tout cela, je n'ai pas encore fait la "mise en forme" si je puis dire...
    merci à tous pour vos réponses, j'étais sur la bonne voie lorsque j'avais testé avec while, mais bon à trop cherché...je me suis embrouillée....

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

Discussions similaires

  1. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  2. Lire les fichiers copiés d'une base de données
    Par zaac01 dans le forum Installation
    Réponses: 5
    Dernier message: 18/11/2007, 16h30
  3. Réponses: 3
    Dernier message: 12/07/2007, 18h10
  4. Réponses: 3
    Dernier message: 31/01/2007, 17h46
  5. [VB+Lotus Notes] Lire les données d'une DB Lotus
    Par kenn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/08/2005, 15h21

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