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 :

Problème pour récupérer un identifiant [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut Problème pour récupérer un identifiant
    Bonjour,

    j'ai un petit problème avec mon code PHP, et je ne vois pas comment le résoudre. Voila mon 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    <? if ($action != "edituser"){ ?>
        <form action="../out/out.UsrMgr.php?action=edituser&id=$id" method="post" enctype="multipart/form-data" name="form0" onsubmit="return checkForm('0');">
        <table>
        <tr>
            <td class="inputDescription"><?=getMLText("user_name")?>:</td>
            <td>
                <?
                    print "<select>";
                    $users = getSelectUsers();
                    foreach ($users as $currUsers)
                    {
                        print "<option value=\"$currUsers\"";
                        if ($currUsers == $settings->_users)
                            print " selected";
     
                        print ">$currUsers";
                    }
                    print "</select>";
                ?>
            </td>
        </tr>
        <tr>
                <td colspan="2"><br><input type="Submit"></td>
        </tr>
     
    <? }elseif($action == "edituser"){
        GLOBAL $db;
        $queryStr = "SELECT id FROM tblUsers WHERE fullName = " . $currUsers;
        $resArr = $db->getResultArray($queryStr);
        echo $queryStr;
    ?>
     
        <form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form1">
        <table border="0">
            <tr>
                <td colspan="2"><hr size="1" width="100%" color="#000080" noshade></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_login");?>:</td>
                <td class="standardText"><input name="login" value="$login"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("password");?>:</td>
                <td><input type="Password" name="pwd"></td>
            </tr>
            <tr>
                <td class="inputDescription"><?printMLText("confirm_pwd");?>:</td>
                <td><input type="Password" name="pwdconf"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_name");?>:</td>
                <td class="standardText"><input name="name" value="$fullName"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("email");?>:</td>
                <td class="standardText"><input name="email" value="$email"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("comment");?>:</td>
                <td class="standardText"><textarea name="comment" rows="4" cols="30"><? $comment ?></textarea></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_image");?>:</td>
                <td class="standardText">
                    <?
                        if ($currUser->hasImage())
                            print "<img src=\"".$currUser->getImageURL()."\">";
                        else
                            printMLText("no_user_image");
                    ?>
                </td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("new_user_image");?>:</td>
                <td class="standardText"><input type="file" name="userfile" accept="image/jpeg"></td>
            </tr>
            <tr>
                <td colspan="2"><br><input type="Submit"></td>
            </tr>
        </table>
        </form>
        <hr size="1" width="80%" color="#000080" noshade>
        <a class="standardText" href="../op/op.UsrMgr.php?userid=<?print $currUser->getID();?>&action=removeuser"><img src="images/del.gif" width="15" height="15" border="0" align="absmiddle" alt=""> <?printMLText("rm_user");?></a>
     
        </td>
        </tr>
    </table>
    <? } ?>
     
    <?
    printEndBox();
     
    printCenterEnd();
    printHTMLFoot();
    ?>
    Un menu déroulant doit donc apparaitre contenant les "fullName" des personnes présentent dans la base de données. Le problème, c'est que je n'arrive pas a récupérer l'identifiant de la personne sélectionnée...

    Après avoir choisi la personne et appuyer sur le bouton, un formulaire de modification (donc contenant les informations sur la personne sélectionnée) doit normalement apparaitre.

    Ma fonction getSelectUsers() :
    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
     
    function getSelectUsers()
    {
        GLOBAL $db;
     
        $queryStr = "SELECT fullname FROM tblUsers ORDER BY login";
        $resArr = $db->getResultArray($queryStr);
     
        if (is_bool($resArr) && $resArr == false)
            return false;
     
        $users = array();
     
        for ($i = 0; $i < count($resArr); $i++)
        $users[$i] = $resArr[$i]["fullName"];
     
        return $users;
    }
    Un petit coup de main serait pas de refus.
    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Citation Envoyé par grumly22
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        GLOBAL $db;
        $queryStr = "SELECT id FROM tblUsers WHERE fullName = " . $currUsers;
        $resArr = $db->getResultArray($queryStr);
        echo $queryStr;
    Bonjour,

    il est ou ton mysql_query ? dans la fonction getResultArray ?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    je suppose dans sa propre classe DB

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    J'ai déjà essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     GLOBAL $db;
        $queryStr = "SELECT id FROM tblUsers WHERE fullName = " . $currUsers;
        $resArr = $db->getResultArray($queryStr);
        echo $queryStr;
    mais j'ai toujours la meme erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    You have an error in your SQL syntax. Check the manual that corresponds to your  MySQL server version for the right syntax to use near '' at line 1: SELECT id  FROM tblUsers WHERE fullName =

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Déjà c'est:
    $queryStr = "SELECT id FROM tblUsers WHERE fullName = '" . $currUsers."'";
    si fullname est un varchar.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    oki pour cette petite erreur con, mais je recupere toujours pas l'identifiant.
    La requête s'execute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT id FROM tblUsers WHERE fullName = ''
    mais ... pas de fullName.

  7. #7
    Invité
    Invité(e)
    Par défaut
    <form action="../out/out.UsrMgr.php?action=edituser&id=$id" method="post" enctype="multipart/form-data" name="form0" onsubmit="return checkForm('0');">

    tu recueperas la valeur $id et non pas ce quelle contient;

    essai :
    ....?action=edituser&id=<?php echo $id; ?> ....

    ps utilises <?php et non pas <? --> obsolete

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    Dans ce cas, l'identifiant n'apparait pas non plus dans l'URL ... C'est chiant, je vois pas d'ou ça peut venir.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par grumly22
    Dans ce cas, l'identifiant n'apparait pas non plus dans l'URL ... C'est chiant, je vois pas d'ou ça peut venir.
    ben si il apparaitra, si $id = 12 tu aura ...?id=12...

    tu definis bien ton $id avant??

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    comment ça? je commence à être perdu

  11. #11
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <? }elseif($action == "edituser"){
        GLOBAL $db;
        $queryStr = "SELECT id FROM tblUsers WHERE fullName = " . $currUsers;
        $resArr = $db->getResultArray($queryStr);
        echo $queryStr;
    ?>
    c'est un peu normal, ton $currUsers n'existe pas là. Fait un var_dump($currUsers) dans cette alternative, ça doit afficher NULL. Ta variable est initialisée dans l'alternative du dessus.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Peut etre que je me trompe mais quand tu met dans ton action $id celui ci est bien defini avant?
    si c'est pas le cas c'est normal qu'il naffecte aucune valeur car il nexiste pas.
    si c'est dans ton formulaire que tu affecte une valeur à $id alors dans ce cas tu le met dans un input type hidden et tu recupere la valeur en post
    <input type="hidden" name="id" value="<?php echo $id;?>">

  13. #13
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    J'ai supprimer mon premier "if ... elseif"...

    Mon code ressemble maintenant à ça:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
        <form action="../out/out.UsrMgr.php?action=edituser" method="post" enctype="multipart/form-data" name="form0" onsubmit="return checkForm('0');">
        <table>
        <tr>
            <td class="inputDescription"><?=getMLText("user_name")?>:</td>
            <td>
                <?
                    print "<select>";
                    $users = getSelectUsers();
                    foreach ($users as $currUsers)
                    {
                        print "<option value=\"$currUsers\"";
                        if ($currUsers == $settings->_users)
                            print " selected";
     
                        print ">$currUsers";
                    }
                    print "</select>";
                ?>
            </td>
        </tr>
        <tr>
                <td colspan="2"><br><input type="Submit"></td>
        </tr>
     
    <?if($action == "edituser"){
        GLOBAL $db;
        var_dump($currUsers);
        $queryStr = "SELECT id FROM tblUsers WHERE fullName = '".$currUsers."'";
        $resArr = $db->getResultArray($queryStr);
        echo $queryStr;
    ?>
     
        <form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form1">
        <table border="0">
            <tr>
                <td colspan="2"><hr size="1" width="100%" color="#000080" noshade></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_login");?>:</td>
                <td class="standardText"><input name="login" value="$login"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("password");?>:</td>
                <td><input type="Password" name="pwd"></td>
            </tr>
            <tr>
                <td class="inputDescription"><?printMLText("confirm_pwd");?>:</td>
                <td><input type="Password" name="pwdconf"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_name");?>:</td>
                <td class="standardText"><input name="name" value="$fullName"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("email");?>:</td>
                <td class="standardText"><input name="email" value="$email"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("comment");?>:</td>
                <td class="standardText"><textarea name="comment" rows="4" cols="30"><? $comment ?></textarea></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_image");?>:</td>
                <td class="standardText">
                    <?
                        if ($currUser->hasImage())
                            print "<img src=\"".$currUser->getImageURL()."\">";
                        else
                            printMLText("no_user_image");
                    ?>
                </td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("new_user_image");?>:</td>
                <td class="standardText"><input type="file" name="userfile" accept="image/jpeg"></td>
            </tr>
            <tr>
                <td colspan="2"><br><input type="Submit"></td>
            </tr>
        </table>
        </form>
        <hr size="1" width="80%" color="#000080" noshade>
        <a class="standardText" href="../op/op.UsrMgr.php?userid=<?print $currUser->getID();?>&action=removeuser"><img src="images/del.gif" width="15" height="15" border="0" align="absmiddle" alt=""> <?printMLText("rm_user");?></a>
     
        </td>
        </tr>
    </table>
    mon problème maintenant, c'est que quand je veux choisir "Dupont" dans le menu déroulant, il m'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id FROM tblUsers WHERE fullName = 'TOTO'
    et chaque fois que j'essaie de choisir qq'un d'autre, il choisie toujour le meme... pourquoi?

  14. #14
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Parce que $currUsers vaut le dernier nom de ta liste. Tu parcours ta liste de noms en les mettant dans $currUsers, tu fais le traitement, mais après tu te resers de cette variable donc forcément elle a la dernière valeur de ta boucle, donc le dernier nom de ta liste.

  15. #15
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    Comment je peux faire alors?

  16. #16
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Je pense qu'il faut que tu donnes un nom à ton select, par exemple <select name='prenom'> et après tu récupères la valeur avec $_POST['prenom'] (si c'est ça que tu veux faire).

  17. #17
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    Est ce que c'est abusé, si je vous dis que je vous aime?
    C'est bon, je récupère le fullname, reste plus qu'à mettre l'identifiant dans une variable et le tour est joué.

    Merki beaucoup!

  18. #18
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Content que ça t'ai aidé, merci de mettre le tag ...

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

Discussions similaires

  1. problème pour récupérer l'identifiant
    Par ballantine's dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/02/2008, 10h45
  2. [MySQL] problème pour récupérer un identifiant dans la base
    Par leclone dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/03/2007, 09h54
  3. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49
  4. [TWebbrowser] Probléme pour récupérer la source
    Par Gauth dans le forum Web & réseau
    Réponses: 8
    Dernier message: 09/04/2005, 15h57
  5. Problème pour récupérer la clé primaire
    Par caramel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2003, 13h57

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