Liste déroulante + MySQL + Id et login

Bonjour à tous !

Je dois récupérer les éléments d'un champ dans une table MySQL, pour ce fait tout va bien :
<select name="f_Mybook" style="width:100%">
<option><?php echo $CAS_VotreMybook; ?></option>
<?php
$sql = 'SELECT * FROM mybook_users  ';
$list = mysql_query($sql);
while ($data = mysql_fetch_array($list))
{echo'<option id="'.$data['user_id'].'">'.$data['user_login'].'</option>';}
?>
</select>
Il affiche le nom d'utilisateur comme prévu.

Le problème est là, lorsque je veux afficher l'id à la fin du lien et le nom complet de l'utilisateur, je n'ai que l'id qui s'affiche avec comme nom d'utilisateur le n° id.
$corps.=$CAS_Mybook." : <a href='http://monsite.com/?q=user/".$f_Mybook."' target='_blank'>".$f_Mybook."</a><br /><br />";


Pouvez-vous m'aider svp ?

Merci d'avance

9 réponses

  1. Contributeur
    Salut

    d'où elles sortent tes variables $f_Mybook and co ?
    J'imagine qu'elle contient l'id, si tu l'affiches à nouveau ensuite dans ton lien, je vois mal comment il pourrait y avoir autre chose que l'id dedans ^^
    0
    1. Bah, quand je met :
      $corps.=$CAS_Mybook." : <a href='http://monsite.com/?q=user/".$data['user_id']."' target='_blank'>".$data['user_login']."</a><br /><br />";
      Il n'affiche absolument rien... Donc je me suis dit appeler le <select name="f_Mybook"
      0
      1. Contributeur
        Heu oui, mais comment veux-tu que $f_Mybook te donne l'id, mais aussi le nom ?
        0
    2. Voilà pourquoi ce sujet sur ce forum ^^
      0
      1. Contributeur
        Bon, pour commencer il manque pas mal de code, on comprend pas grand chose là.

        ta ligne là :
        $corps.=$CAS_Mybook." : <a href='http://monsite.com/?q=user/".$f_Mybook."' target='_blank'>".$f_Mybook."</a><br /><br />";


        on n'a aucune idée d'où elle sort, donc impossible de savoir ce qu'il devrait y avoir dans tes variables.
        Je crois comprendre que c'est dans une nouvelle page et tu veux récupérer les données de ton formulaire ?

        Tu peux procéder de plusieurs façon, mais si tu ne récupères que l'id, il va falloir faire une nouvelle requête pour récupérer les infos que tu n'as pas.
        0
    3. C'est un formulaire de contact. Dans celui-ci je dois récupérer depuis une liste déroulante, le nom d'utilisateur. Puis, lors de l'envoie du mail, le nom de l'utilisateur sélectionné devient un hypertexte.
      Vu que le lien doit avoir l'identifiant de cet utilisateur qui me contact...

      <a href='http://monsite.com/?q=user/".$f_Mybook."' target='_blank'>".$f_Mybook."</a>";


      Cependant, si dans mon select je fais ceci :
      <select name="f_Mybook" style="width:100%">
      <?php
      $sql = 'SELECT * FROM mybook_users  ';
      $list = mysql_query($sql);
      while ($data = mysql_fetch_array($list))
      {echo'<option>'.$data['user_login'].'</option>';}
      ?>
      </select>
      Il m'affiche le nom d'utilisateur.

      Une fois que je met un value= :
      <option value="'.$data['user_id'].'">'.$data['user_login'].'</option>

      Il m'affiche l'identifiant et plus le nom.
      0
      1. Contributeur
        oui et je t'ai expliqué pourquoi plus haut.

        Ce que tu peux faire, c'est un truc du genre :

        <option value="'.$data['user_id'].'::'.$data['user_login'].'">'.$data['user_login'].'</option>


        et ensuite :

        $data = explode('::', $f_Mybook);
        echo "<a href='http://monsite.com/?q=user/".$data[0]."' target='_blank'>".$data[1]."</a>";
        0
    4. Il me renvois un Array1
      Le 1 étant l'identifiant de l'admin et dans la liste déroulante j'ai seulement cet unique enregistrement sur 6
      0
      1. Contributeur
        quoi ? Ou ça ? quel endroit ?

        Je t'ai donné 2 codes différents dont un qui a 2 instructions. Il faut être un peu plus précis et m'éviter de sortir ma boule de cristal à chaque fois :)

        Tu peux me montrer ce que tu as mis exactement ?
        0
    5. Désolé ThEBiShOp :s c le stress :D
      Voici mon code :
      <?php
      $db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
      mysql_select_db(MYSQL_BASE,$db);
      
      $sqls = 'SELECT * FROM mybook_users  ';
      $lists = mysql_query($sqls);
      while ($datas = mysql_fetch_array($lists))
      {
      
      $corps.=$CAS_Mybook." : ".$datas = explode('::', $f_Mybook)."<a href='http://monsite.com/?q=user/".$datas[0]."' target='_blank'>".$datas[1]."</a>"."<br /><br />";
      
      <select name="f_Mybook" style="width:100%">
      <option><?php echo $CAS_VotreMybook; ?></option>
      <?php
      echo'<option value="'.$datas['user_id'].'::'.$datas['user_login'].'">'.$datas['user_login'].'</option>';
      ?>
      </select>
      
      0
      1. Contributeur
        Je ne comprends plus vraiment, je pensais que ta ligne $corps... était à un autre endroit du code.
        Là elle se retrouve avant ton formulaire alors qu'elle est censé utiliser les infos du formulaire, ça ne risque pas de marcher.

        Tu peux me montrer ce que tu avais avant ?
        0
    6. Voici toute ma page... peut-être que :s
      https://zurb.com/chop#zc5yqrjl
      0
      1. Contributeur
        en ligne 205 remplace la ligne que tu as par :

                            $data = explode('::', $f_Mybook);
                            $corps.=$CAS_Mybook . "&nbsp;&nbsp; : <a href='http://monsite.com/?q=user/" . $data[0] . "' target='_blank'>" . $data[1] . "</a>" . "<br /><br />";
        0
    7. Il n'affiche toujours rien :s
      Voici la page... https://zurb.com/chop#gt1a6zzx
      0
      1. Contributeur
        juste en dessous ou au dessus mets un print_r($f_Mybook); et dis moi ce que ça marque.
        0
      2. Il m'envoie le numéro de l'identifiant (3)
        0
      3. Contributeur
        mmh, à la place des :: essaie de mettre juste un tiret, dans le formulaire et au niveau de $corps
        0
      4. print_r($data[0]); me renvois l'identifiant
        print_r($data[1]); ne me renvois rien
        0
      5. print_r($f_Mybook); me renvois l'identifiant
        print_r($data[0]); me renvois l'identifiant
        print_r($data[1]); ne me renvois rien
        0
    8. Ca va ressembler à ca donc ? https://zurb.com/chop#76zo30l7

      Si oui, alors j'obtiens une erreur :
      Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 7 in /homez.724/sivop/www/casting_inscription.php on line 11

      Ligne 11 :
      $user_login = mysql_result($res_login, 0);
      0
      1. Contributeur
        d'accord...

        Est-ce que tu pourrais me communiquer tes codes ftp ? Je regarderai directement, je pourrai faire quelques tests et ça irait beaucoup plus vite.
        0
      2. Non dsl :s c'est le ftp d'une entreprise... je n'ai pas le droit de le faire :s
        0