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 :

Recupération et affichage de donnée avec pdo [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut Recupération et affichage de donnée avec pdo
    Bonjour à tous

    je me suis lancé dans la conversion d'une application desktop vers une application web à la demande d'un client. j'ai beaucoup parcouru la documentation et aussi le forum. Mon problème est que je n'arrive pas à afficher le résultat d'une requête :
    1- pour une requête qui ramène un seul résultat
    2- pour une requête qui ramène plusieurs résultats (Tableau).

    Voici pour le moment au stade ou j'en suis :
    code de connection à la base de donnée et affichage :
    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
     
    try {
    $db = new PDO(DB_DSN,DB_USERNAME, DB_PASSWORD);
     } 
     catch (PDOException $e) 
    {
      echo $e->getMessage(); //catch and show the error
    }
    // Test de creation de l'objet de la base
    if(!$db)
    {
     header("http/1.0 404 Not Found" ); 
    }
    else
    {
    $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules
    $db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions
    $sth = $db->prepare('SELECT  NOM_USERS, MP_USERS, GRP_USERS  FROM  MUDRAG_USERS  WHERE MUDRAG_USERS.NOM_USERS= :monutilisateur and MUDRAG_USERS.MP_USERS= :motpasse');
    $sth->execute(array(':monutilisateur'=>$_POST["tonlogin"],':motpasse'=>$_POST["tonpass"]));
    print_r($sth->fetchAll(PDO::FETCH_ASSOC));
    et voici ce que j'ai comme resultat !
    Array ( [0] => Array ( [nom_users] => ADMIN [mp_users] => RUSTA2014 [grp_users] => SUPERADMIN ) )
    j'ai besoin d'un exemple concret qui m'aider a afficher correctement les données :
    1 - donnée
    2 - plusieurs données en affichant les entêtes de la table concernée

    Merci a tous

  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
    si tu recupères un seul résultat, tu fais un seul fetch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $row = $sth->fetch(PDO::FETCH_ASSOC);
    echo $row['nom_users'];
    si tu recupères plusieurs résultats, tu fais une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
      echo $row['nom_users'] . '<br/>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    je teste et je reviens pour d'éventuelle autre question. il faut avoué que je vais pas à pas autodidacte.
    merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    ok la je pense que c'est que je voulais. si je comprend bien tout est dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sth->execute(array(':monutilisateur'=>$_POST["tonlogin"],':motpasse'=>$_POST["tonpass"]));
    c'est comme une sorte de tableau qui engloble tous les resultats de la requête (les champs de la tables et les resultats)
    Merci de m'éclairer.

  5. #5
    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
    Je ne comprends pas bien ce que tu veux dire.

    La ligne que tu montres fournis les valeurs ($_POST["tonlogin"], $_POST["tonpass"]) correspondant aux paramètres présents dans la requête (':monutilisateur', ':motpasse'), le tout dans un tableau PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    En faite la je suis un peu confus !mon but est de comparer les résultats de la base de donnée avec les données saisies par l'utilisateur. Du coup je sais plus exactement comment récupérer ces données pour les comparer.
    (pour les données venant de la base de donnée c'est bon) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ....
    $row = $sth->fetch(PDO::FETCH_ASSOC);
    $leuserbase=$row['nom_users'];
    $lempbase=$row['mp_users'];
    ...
    je cherche maintenant les données du formulaire pour faire la comparaison.
    j'avoue c'est pas très évident pour moi.
    merci

  7. #7
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    tellement évident ! je pense que je vais prendre un peu de repos pour aujourd’hui.
    Merci

  8. #8
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sth = $db->prepare('SELECT  NOM_USERS, MP_USERS, GRP_USERS  FROM  MUDRAG_USERS  WHERE MUDRAG_USERS.NOM_USERS= :monutilisateur and MUDRAG_USERS.MP_USERS= :motpasse');
    Ceci est ta requête. Comme tu le vois elle cherche des utilisateurs correspondant a un certain login ET a un certain mot de passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sth->execute(array(':monutilisateur'=>$_POST["tonlogin"],':motpasse'=>$_POST["tonpass"]));
    Ca c'est l'execution de la requête, ou on dit que le login qu'on veut c'est $_POST["tonlogin"] et le mot de passe $_POST["tonpass"].
    $_POST["tonlogin"] c'est ce qu'a tapé l'utilisateur dans le champs de formulaire "tonlogin" et $_POST["tonpass"] c'est ce qu'a tapé l'utilisateur dans le champs de formulaire "tonpass".

    Donc si la requête retourne quelque chose, ca sera signifiera qu'il existe bien un utilisateur correspondant au login et au mot de passe saisi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($row = $sth->fetch(PDO::FETCH_ASSOC))) {
       echo 'le mot de passe est bon';
     }
    else {
       echo 'le mot de passe n\'est pas bon';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    merci encore la c'est très claire

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

Discussions similaires

  1. affichage des données avec jtable
    Par sabrinabest dans le forum Composants
    Réponses: 1
    Dernier message: 23/09/2007, 08h59
  2. widget d'affichage des données avec gtk+
    Par sabrinabest dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 11/09/2007, 17h31
  3. [SQL] Réaliser un affichage de données avec possibilité de modification
    Par Adrien93 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 03/11/2006, 00h07
  4. Problème d'affichage de données avec crystal report
    Par napegadie dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 07/12/2005, 15h45
  5. PB : affichage de données avec accent sous delphi 6
    Par kinda dans le forum Débuter
    Réponses: 3
    Dernier message: 03/07/2003, 13h19

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