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 :

Requête sur un client d'une base de donnée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 23
    Points
    23
    Par défaut Requête sur un client d'une base de donnée
    Bonjour,

    je travaille sur une base de données qui gère les commandes de produits de clients (le client passe commande et je l'enregistre dans la bdd). Je souhaiterais que si le client "Florent" puisse avoir accès à SES informations sur la base de données. Avec ce code s'affichent seulement les informations de Florent
    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
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
     function MaConnexion() {
      $serveur = "mysql5-19";
      $login = "login";
      $password = "mdp";
      $base = "base";
      mysql_connect($serveur, $login, $password) or die("Impossible de se connecter au serveur");
      mysql_select_db($base) or die("Impossible de sélectionner la base de données");
    }
     
    // Appel à la fonction de connexion au début du script
    MaConnexion();
     
    // Recherche des catégories
     
     
    $reponse = mysql_query("SELECT nom, client FROM commande WHERE client='Florent'");
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
     
    <?php echo $donnees['nom']; ?> commande de mr ou mme <?php echo $donnees['client']; ?><br />
     
    <?php
    }
     
    mysql_close();
    ?>
    Ma question est la suivante : comment faire pour que Pierre puisse avoir accès à ses informations (sans voir celles de Florent) ?
    Merci d'avance pour votre aide

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Points : 2 399
    Points
    2 399
    Par défaut
    Ba il suffit de remplacer Florent par Pierre non ?
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 23
    Points
    23
    Par défaut r
    j'ai une page identification.html : le client tape son nom pour avoir accès à ses informations concernant une commande - Patrick valide son identification et consulte les informations de la base de données mais par contre Michel est aussi sur la base de données et si Michel tape son identifiant il ne peut y avoir accés puisque j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT nom, client FROM commande WHERE client='Florent'");
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
     
    <?php echo $donnees['nom']; ?> commande de mr ou mme <?php echo $donnees['client']; ?><br />
     
    <?php
    }
     
    mysql_close();
    ?>
    donc comment faire, pour qu'en fonction de l'identifiant les informations correspondantes à cet identifiant s'affichent ?

  4. #4
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Points : 2 399
    Points
    2 399
    Par défaut
    Si ton formulaire d'identification est en method="get" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SELECT nom, client FROM commande WHERE client='".$_GET['nom']."'");
    Si il est en method="post" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SELECT nom, client FROM commande WHERE client='".$_POST['nom']."'");
    Remplacer "nom" par le nom du champ qui correspond au nom de la personne
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  5. #5
    Invité
    Invité(e)
    Par défaut
    ATTENTION
    Eviter de passer des paramètres en GET, surtout pour des données SENSIBLES (identification !)

    Le mieux est encore d'enregistrer le nom (ou l'id ?) dans une variable de SESSION :

    Au moment de l'identification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['nom'] = $lenom; // ($lenom = 'Pierre'; par exemple)
    Pour la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM commande WHERE client='".$_SESSION['nom']."'");

  6. #6
    Invité
    Invité(e)
    Par défaut
    D'autre part :
    crée un fichier "externe" _connexion.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
      $serveur = "mysql5-19";
      $login = "login";
      $password = "mdp";
      $base = "base";
      mysql_connect($serveur, $login, $password) or die("Impossible de se connecter au serveur");
      mysql_select_db($base) or die("Impossible de sélectionner la base de données");
    ?>
    Ensuite, dans tes fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // connexion a la BD
    include('_connexion.php');
    Ca t'évitera de recopier en CLAIR tes paramètres de connexion dans tous tes fichiers !!

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup Seb33300,

    c'est exactement ce qu'il me fallait, ça fonctionne super ... mon formulaire est en méthode "post".
    Avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SELECT nom, client FROM commande WHERE client='".$_POST['nom']."'");
    j'ai effectivement le nom (du produit) et le client (qui s'est identifié : Patrick, Pierre ou Paul) qui apparaissent, mais que devient le code si l'on doit y rajouter d'autres champs (par exemple une date de commande, une date de livraison et un prix) ?
    je suppose qu'il doit falloir rajouter quelques trucs au niveau de $echo également ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $reponse = mysql_query("SELECT nom, client FROM commande WHERE client='".$_POST['nom']."'");
     
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
     
    <?php echo $donnees['nom'];?> commande de mr ou mme <?php echo $donnees['client']; ?><br />
    Encore merci pour votre aide, c'est super sympa

  8. #8
    Invité
    Invité(e)
    Par défaut
    Apparemment, tu n'as pas lu mes précédents messages ...

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    désolée Jreaux62 mais je répondais à Seb33300 et je n'avais pas vu tes messages ... je vais de ce pas regarder tout ça
    A tout'

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    Me revoilà Jreaux62 ...
    j'ai rajouté ceci au niveau du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SESSION['nom'] = $nom; // ($lenom = 'Pierre'; par exemple)
     
    $reponse = mysql_query("SELECT * FROM commande WHERE client='".$_SESSION['nom']."'");
    c'est bien ça ? en tout cas ça fonctionne ...
    mais par contre je ne comprends pas "Ca t'évitera de recopier en CLAIR tes paramètres de connexion dans tous tes fichiers !! " de quels fichiers me parles-tu ? j'ai un fichier identification.html avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Veuillez taper votre prénom :
    </p>
     
    <form action="mabdd.php" method="post">
    <p>
    <input type="text" name="nom" /> <input type="submit" value="Valider" />
    </p>
    </form>
    et le fichier mabdd.php avec
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
     function MaConnexion() {
      $serveur = "mysql5-19";
      $login = "login";
      $password = "xxxxx";
      $base = "mabdd";
      mysql_connect($serveur, $login, $password) or die("Impossible de se connecter au serveur");
      mysql_select_db($base) or die("Impossible de sélectionner la base de données");
    }
     
    // Appel à la fonction de connexion au début du script
    MaConnexion();
     
    // Recherche des catégories
     
    $_SESSION['nom'] = $nom; // ($lenom = 'Pierre'; par exemple)
     
    $reponse = mysql_query("SELECT * FROM commande WHERE client='".$_SESSION['nom']."'");
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
     
    <?php echo $donnees['nom'];?> commande de mr ou mme <?php echo $donnees['client']; ?><br />
     
    <?php
    }
     
    mysql_close();
    ?>

  11. #11
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    En attendant ta réponse, je cherche aussi et j'ai rajouté le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $donnees['prix'];?>
    et ainsi j'ai le prix qui s'affiche également (en plus du nom du produit et du nom du client) et je rajoute autant de echo que j'ai de champ ... c'est trop cool

  12. #12
    Invité
    Invité(e)
    Par défaut
    Tu remplaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     function MaConnexion() {
      $serveur = "mysql5-19";
      $login = "login";
      $password = "xxxxx";
      $base = "mabdd";
      mysql_connect($serveur, $login, $password) or die("Impossible de se connecter au serveur");
      mysql_select_db($base) or die("Impossible de sélectionner la base de données");
    }
     
    // Appel à la fonction de connexion au début du script
    MaConnexion();
    par ce que je t'ai mis dans mon précédent message .

  13. #13
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour ton aide ... je suis arrivé à ce que je souhaitais et c'est génial ...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2008, 21h25
  2. Requete sur 2 schemas d'une base de données
    Par judefei dans le forum Oracle
    Réponses: 2
    Dernier message: 15/10/2007, 17h20
  3. Avis sur la structure d'une base de données
    Par ange_dragon dans le forum Modélisation
    Réponses: 2
    Dernier message: 29/05/2007, 15h45
  4. question sur l'exploitation d'une base de données..
    Par rainbow38 dans le forum Access
    Réponses: 3
    Dernier message: 22/01/2007, 16h12
  5. diffuser sur un réseau interne une base de données Access
    Par comme de bien entendu dans le forum Access
    Réponses: 3
    Dernier message: 22/09/2005, 09h25

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