Récuperer des enums d'un attribut

cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009 - 24 avril 2008 à 16:14
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009 - 28 avril 2008 à 15:06
bonjour,
voila j'ai une table connexion qui possede un attribut dont ses elements sont deja prefedefinies : "type_connexion". pour etre plus claire: Type Connexion: soit ADSL ou VSAT ou WIMAX.
voila je cherche comment recuperer ses attributs avec une requete pour les mettre dans une liste select dans code php.
j ai essaye une requete avec un select mais cette derniere ne me retourne pas tous les types. seulement ceux qui ont été utilisés pour des connexions saisies dans la table.
j'essaye de chercher une solution mais je vois pas dautre qu'en utilisant une requete.
merci pour votre aide
a bientot

14 réponses

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
24 avril 2008 à 16:18
Euh c'est normal que la requête renvoie que ce que tu as dans ta table sinon ca veut dire qu'elle demande a google et parse les resultat tout seul
J'ai peut être pas compris mais je réponds à ce dont j'ai cru comprendre...

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 avril 2008 à 19:22
Hello,


SHOW COLUMNS FROM nom_table LIKE champ_enum
puis tu parses le résultat.





0
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009
27 avril 2008 à 12:37
bonjour;
j ai essaye malalam la requete que tu as postée et voila comment j ai fais:

<?php

    $link = mysql_connect("localhost","root","");
    mysql_select_db('pfe_bd');
   
    $res=mysql_query("SHOW COLUMNS FROM connexion LIKE Type_CNX") or die(mysql_error());
    echo $res;
    while($lig=mysql_fetch_array($res));
    {
    echo ($lig);
    }
 
    mysql_close($link);
?>

mais on me renvoit cette erreur:

Erreur de syntaxe près de 'Type_CNX' à la ligne 1

bon je vois pas exactement où est l'erreur.
merci pour votre aide
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 avril 2008 à 16:16
   $res=mysql_query("SHOW COLUMNS FROM connexion LIKE 'Type_CNX'") or die(mysql_error());
Il manque les apostrophes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009
27 avril 2008 à 17:01
resalut,
j'ai ajouté les apostrophes et il me retourne l'ID de l'attribut:
Resource id #3

Devrai-je utliser l'ID pour extraire les enumerations que contient cet attribut??
merci
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 avril 2008 à 17:10
Tu fais un echo de la ressource retournée par mysql_query(), c'est normal...
Et mysql_fetch_array() renvoie un tableau...et faire un echo d'un tableau renvoie 1. Donc forcément, tu ne vois rien là...mais tout est là, il faut juste que tu utilises correctement les fonctions. Comment tu fais en général pour aller chercher les résultats d'une requête ? Sûrement pas comme ça.
Tu devrais relire des tutos sur l'utilisation de l'extension mysql.
0
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009
27 avril 2008 à 17:23
bon, en general j'utilise mysql_fetch_array() car elle répond à mes besoins surtout que l'application que je suis entrain de developper un peu simple.
en tout cas,merci pour les informations. je vais essayer de m'informer un peu plus sur ca et esperons que j'y arriverai.
merci pour ton aide
0
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009
27 avril 2008 à 17:44
resalut,
Voila comment j'ai fait mais ca ne me retourne rien...


<?php

    $link = mysql_connect("localhost","root","");
    mysql_select_db('pfe_bd');
    
    $res=mysql_query("SHOW COLUMNS FROM connexion LIKE 'Type_CNX'") or die(mysql_error());
 
    while($lig=mysql_fetch_array($res));
    {
    echo ($lig);
    }

    mysql_close($link);
?>

Jimagine personnellement que l'erreur vient au niveau de la ligne en rouge.
a ma connaissance, normalement on fait $lig['attribut_table'] mais la, franchement j'ai la l'impression de ne rien comprendre. si vous pouvez m'eclaircir un peu plus comment faire la suite.
meeerci
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 avril 2008 à 18:23
mysql_fetch_array() renvoie un tableaau je t'ai dit. Quand tu l'utilises en général, tu fais ça ? J'ai des doutes.
Si tu fais echo array(1,2,3); ça renvoie quoi ? Là c'est pareil. C'est un TABLEAU, donc affiche le comme tu affiches un tableau.
0
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009
27 avril 2008 à 19:04
oui c'est bon merci. j'ai compris.
voila j ai fait de cette façcon là:

<?php

    $link = mysql_connect("localhost","root","");
    mysql_select_db('pfe_bd');
   
    $res=mysql_query("SHOW COLUMNS FROM connexion LIKE 'Type_CNX'") or die(mysql_error());
   
    if (mysql_num_rows($res) > 0)
    {
           $row = mysql_fetch_row($res);
              echo ($row[1]);
     }
mysql_close($link);
?>
 
et ca me retourne :

enum('ADSL','WIMAX','LS','FR','VSAT')

c'est bon en quelque sorte mais je me demande s'il n'y a pas un moyen pour extraire chaque enumeration a part..c'est à dire ADSL pui WIMAX...car j'aurai besoin de les mettre dans une liste deroulante SELECT dans mon code
merci
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 avril 2008 à 19:57
Si il y a moyen justement à toi de parser le résultat, comme je te l'ai dit au début.
0
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009
27 avril 2008 à 20:27
ok merci bcp
0
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009
28 avril 2008 à 09:49
Bonjour,


voila j ai essaye de chercher comment parser un resultat pour une telle requete mais je n'ai pas su. alors si vous pouviez m'aider un peu svp.


merci d'avance
0
cs_rymoucha Messages postés 37 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 30 novembre 2009
28 avril 2008 à 15:06
salut tout le monde;
voila enfin, ma solution

<?php

    $link = mysql_connect("localhost","root","");
    mysql_select_db('pfe_bd');
   
    $res=mysql_query("SHOW COLUMNS FROM connexion LIKE 'Type_CNX'") or die(mysql_error());

    while($lig= mysql_fetch_array($res))
    {
        if(preg_match('!enum(.+)!',$lig['Type']))
        {
            $enum = preg_replace ('!^enum\((.+)\)$!', '$1', $lig['Type']);

            $enum = str_replace ("'", "", $enum);
            $enum = explode (',', $enum);
            echo '<select name="typ_cnx_mdf">';
            foreach ($enum as $valeur)
            echo ' <option value="'.$valeur.'">'.$valeur.'</option>';
            echo '</select>';
        }
    }

    mysql_close($link);
?>

merci pour l'aide de tout le monde
0
Rejoignez-nous