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 :

Récuperation de données d'un SELECT


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut Récuperation de données d'un SELECT
    Bonjour,
    je suis débutant en php/MySQL et je cherche à récupérer les données d'un SELECT à l'aide de php,je veux récupérer le données de chaque utilisateur (variable) connecté,j ai réussi a récupérer tous les champs de la base mais je veux récupérer que le nom de l utilisateur,pour cela voici le code que j ai fait :
    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
    <?php 
    // connexion a ma base
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_de_données");
     
    //verification si inscriuername( le nom du champ de l'utilisateur) 
     
    if (isset($_POST['inscriuername'])) {
     
        mysql_query('SELECT inscname FROM inscription WHERE inscriuername=' . $_POST['inscriuername']);
     
    	$champ = $_POST['inscriuername'];
     
     
    // afficher le nom de l'utilisateur
        echo $champ ;
    }
    ?>

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Pour l'instant avec ta requête tu ne peut rien réccupérer ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $result = mysql_query($query);
     
    // ensuite nous travaillons sur $result avec des mysql_fetch _xxxx
    // voir manuel php (comme mysql_fetch_row par exemple

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Merci bcp Fench pour la reponse qui m'a bcp aidé,voila ce que j ai fait,
    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 
    // connexion a la base de données
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_de_donnes");
     
    // definir une variable selon l'utilisateur connecté 
    $user=$_POST['inscriuername'];
     
     
    $result = mysql_query("SELECT inscname FROM inscription WHERE inscriuername = '".$user."' ");
     
    if (!$result) {
       echo 'Impossible d\'exécuter la requête : ' . mysql_error();
       exit;
    }
     
    $row = mysql_fetch_row($result);
     
    //afficher le resultat
    echo $row[$user]; 
    ?>
    voila ce qu on me donne comme resultat
    Notice: Undefined index: inscriuername on line 7

    sachant que j'utilise la methode POST dans le formulaire d'inscription

  4. #4
    Membre éclairé Avatar de Chris_Dupasquier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2010
    Messages : 67
    Par défaut
    Hello,

    //afficher le resultat
    echo $row[$user];
    Il te faut bien réfléchir sur ce que tu vas afficher dans le résultat, tu exécutes une requête que tu places dans une variable nommée $result. Puis tu cherches une ligne correspondante que tu places dans une variable $row.

    Dans ta requête de Select, tu stipules que tu cherches quelqu'un qui a un unsername récupéré dans une variable de type POST.

    Comment veux tu que php interprète ta dernière commande ? Tu lui demande d'écrire le résultat d'un fetch_row avec comme valeur dans le tableau une variable POST...

    Voici le lien vers le manuel PHP : ICI

    Tu devrais comprendre tout seul...

    A+

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Effectivement, tu as déjà un problème pour le $row, c'est $row['nomdunChamp']Ensuite pour ton erreur:
    Notice: Undefined index: inscriuername on line 7
    le champ 'inscriuername' ne doit pas exister dans ton formulaire.

  6. #6
    Membre éclairé Avatar de Chris_Dupasquier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2010
    Messages : 67
    Par défaut
    Citation Envoyé par Fench Voir le message
    Effectivement, tu as déjà un problème pour le $row, c'est $row['nomdunChamp']
    Hello,

    Ne serait-ce pas plus simple d'utiliser les valeurs de "tableau" comme
    A+

  7. #7
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Ne serait-ce pas plus simple d'utiliser les valeurs de "tableau" comme
    En fait, c comme tu veux, tu as le fetch_row, fetch_array et fetch_assoc pour tous les cas. Pour ma part, je préfère l'associatif, c'est plus parlant et puis pour débuguer aussi.

  8. #8
    Membre éclairé Avatar de Chris_Dupasquier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2010
    Messages : 67
    Par défaut
    Autant pour moi..., je n'avais pas vu l'aspect debug...

    Merci je m'endormirais moins idiot...

    A+

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Merci bcp Chris et Fench de m'avoir aidé mais mon problème n'est malheureusement pas résolu,Chris si je comprend bien le role d'un $row et si je fais ce que tu m'as proposé de faire
    c'est que je difinie deja une ligne dans ma table et qui est 0,donc chaque utilisateur des qu'il s'authentifie il va recevoir la meme valeur dans son nom pour cela j'ai fait ce 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
    <?php 
     
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_de_donnees");
     
     
    //$id=$_POST['inscriuername'];
     
    $result = mysql_query("SELECT inscname FROM inscription WHERE inscriuername = 'richard'");
    if (!$result) {
       echo 'Impossible d\'exécuter la requête : ' . mysql_error();
       exit;
    }
    $row = mysql_fetch_row($result);
     
    echo $row['0']; 
    ?>
    mais ça retourne toujours le même résultat pour tous les utilisateurs,ce que je veux faire c'est de récupérer le nom de chaque utilisateur des qu'il se connecte,c'est pour cela que j'ai fait une variable qui recupere ce que l'utilisateur a saisi et que j 'ai mis dans le SELECT,mais le problème est deja au debut de la récupération (line 7) ,Fench pourquoi le champ inscriuername ne doit pas pas exister dans mon formulaire ? comment donc on va distinguer entre les utilisateurs ?

  10. #10
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Est ce que tu peux également poster le code de ton formulaire, ça devrait nous aider. Et si ça nous aide, ça devrait t'aider aussi

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    bonjour rawsrc ,
    voila le code de mon formulaire :

    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
    <form id="inscriptionForm" name="inscriptionForm" method="POST" action="<?php echo $editFormAction; ?>">
     
    <label>
                <input type="text" name="inscname" id="inscname" />
              </label></td>
            </tr>
            <tr>
              <td>Last name :</td>
              <td><label>
                <input type="text" name="insclastname" id="insclastname" />
              </label></td>
            </tr>
            <tr>
              <td> Username :</td>
              <td><label>
                <input type="text" name="inscriuername" id="inscriuername" />
              </label></td>
            </tr>
          </table>
          <input type="hidden" name="MM_insert" value="form1" />
          <input type="hidden" name="MM_insert" value="inscriptionForm" />
        </form></td>

  12. #12
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bon on va reprendre par ce que c'est brouillon :
    Voici le code du formulaire à mettre en forme avec du CSS et pas un un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form id="inscriptionForm" name="inscriptionForm" method="post" action="<?php echo $editFormAction; ?>">
        <label for="inscname">Name</label>
        <input type="text" name="name" id="inscname" />
        <label for="insclastname">Last name :</label>
        <input type="text" name="lastname" id="insclastname" />
        <label for="inscriuername">Username :</label>
        <input type="text" name="username" id="inscriuername" />
        <input type="submit" name="MM_insert" value="Connect" />
    </form>
    Et voici le code PHP correspondant :
    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
    <?php 
    // connexion a la base de données
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_de_donnes");
     
    // definir une variable selon l'utilisateur connecté 
    // rejeté : '' 0 '0'
    if (empty($_POST['username'])) {
        echo "Nom d'utilisateur invalide"
        exit;
    }
     
    $sql    = "SELECT inscname FROM inscription WHERE inscriuername = '".mysql_real_escape_string($_POST['username'])."'";
    $result = mysql_query($sql);
     
    if ( ! $result) {
       echo 'Erreur : ' . mysql_error();
       exit;
    }
     
    $row = mysql_fetch_assoc($result);
     
    //afficher le resultat
    echo $row['inscname']; 
    ?>
    A adapter mais l'idée est là,
    Par ailleurs, je t'invite à te perdre dans les nombreux cours et tutos qui jalonnent ce site pour faire du web...

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Merci beaucoup Martin pour ta reponse mais ca retourne "Nom d'utilisateur invalide",je sais que le probleme est de ce maudit POST ,au formulaire d'inscription j ai utiliser la methode POST et non pas GET ,voila le code du formulaire d'inscription
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form id="inscriptionForm" name="inscriptionForm" method="POST" action="<?php echo $editFormAction; ?>">
    ....
    voila le code d'authentification de l'utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form id="inscriptionForm" name="inscriptionForm" method="POST" action="<?php echo $loginFormAction; ?>">
          <p>
            <label for="inscriuername">Username :</label>
            <input type="text" name="inscriuername" id="inscriuername" />
          </p>
          <p>
            <label for="inscpassword">Password :</label>
            <input type="text" name="password" id="inscpassword" />
          </p>
          <p>
     
            <input type="submit" name="MM_insert" value="Connect" />
          </p>
        </form>
    et voila le code modifié de la récupération du nom de l'utilisateur connecté
    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
    <?php 
    // connexion a la base de données
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_de_données");
     
    // definir une variable selon l'utilisateur connecté 
    // rejeté : '' 0 '0'
    if (empty($_POST['inscriuername'])) {
        echo "Nom d'utilisateur invalide";
    	exit;
    }
     
    $sql    = "SELECT inscname FROM inscription WHERE inscriuername = '".mysql_real_escape_string($_POST['inscriuername'])."'";
    $result = mysql_query($sql);
     
    if ( ! $result) {
       echo 'Erreur : ' . mysql_error();
       exit;
    }
     
    $row = mysql_fetch_assoc($result);
     
    //afficher le resultat
    echo $row['inscname']; 
    ?>
    mais ca retourne "nom d'utilisateur invalide" ,je sais que le probleme est dans le POST mais je sais pas comment le regler

  14. #14
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    allez on va voir ce que tu récupères à la soumission du formulaire :
    Débute ton script PHP par
    Et mets nous ce que tu as.

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    on affiche :

    Array ( )

  16. #16
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Est-ce que tu es sûr que $loginFormAction pointe bien sur le script cible ?
    Chez moi, je récupère bien le $_POST

  17. #17
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Pour la cible, ça doit être bon puisque il y a bien un affichage ...

    Avec le code donné, il devrait bien avoir un $_POST contenant quelquechose !!

    Il doit manquer des morceaux que tu nous as pas donné (en html) peut être,

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Bonjour Fench,tout fonctionne bien sauf qu'il connais pas le nom de mon champ,a l'execution du code on m'affiche ce message d'erreur "Notice: Undefined index: inscriuername on line 12 "

    et le code de la ligne 12 est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql    = "SELECT inscname FROM inscription WHERE inscriuername = '".mysql_real_escape_string($_POST['inscriuername'])."'";
    je commence a perdre espoire car ca fait 4mois que ce problème me bloque

  19. #19
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Vu que le print_r($_POST); te sort un array vide, ton problème provient sûrement du côté html de ton formulaire ET malheureusement, je ne vois rien qui cloche

    Juste pour bien vérifier, envoie moi ton code complet (ce qui peut être vu bien sûr) en message privé ... je regarderaris

  20. #20
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Bonjour,
    j'ai fait tout ce que vous m'avez proposer de faire mais mon problème n'es pas encore resolu,la machine affiche toujours ce message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index :nom_de_mon_champs
    ce qui veut dire que la machine ne connait pas le nom de mon champs est ce que je devais le declaré ou l'initialisé avant tout ca ou je sais pas quoi faire,en tout cas je vous remercie tous pour votre aide et j'ai decidé de laisser tomber mon projet.merci bcp pour votre aide mes amis

Discussions similaires

  1. récuperation de données avec un select
    Par guillaumeIOB dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/05/2010, 14h36
  2. Récup des données d'un select (cf exemple dans la faq)
    Par j0k3r_n0ir dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2005, 18h36
  3. Réponses: 2
    Dernier message: 20/01/2005, 15h19
  4. Réponses: 5
    Dernier message: 22/12/2004, 16h13
  5. Comment récuperer des données entrées au clavier?
    Par Elisée A. dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2004, 07h22

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