[php] extraire le type enum de mysql?

cornnery1 Messages postés 3 Statut Membre -  
 Cobax -
bonjour à tous j'aimerais savoir comment extraire les données de type enum d'une base mysql pour pouvoir les utiliser dans un formulaire

1 réponse

  1. florent
     
    hello
    j'aimerai savoir si tu as reussi a trouver la reponse a ta question et si oui pourrais tu me la donner j'ai un enum dans une table annonce qui a trois champs "simple","emploi","fonciere" help me stp
    1
    1. soalanis Messages postés 1 Date d'inscription   Statut Membre
       
      $requete = mysql_query("show columns from ".$nom_table." like 'nom-enum'");

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

      $enum = str_replace ("'", "", $enum);
      $enum = explode (',', $enum);
      echo '<select name="liste_enum'">';
      foreach ($enum as $valeur)
      echo ' <option value="' . $valeur . '">' . $valeur . '</option>';
      echo '</select>';
      }
      }
      0
      1. Cobax > soalanis Messages postés 1 Date d'inscription   Statut Membre
         
        Bien pratique ce script !
        il y a quelques erreurs de syntaxe. Le voici actualisé et compatible avec MYSQLI:

        $enumeration = $mysqli->query("show columns from NOMDELATABLE like 'NOMDELACOLONNE'");
        $row = $enumeration->fetch_assoc();
        $enumeration->data_seek(0);
        while ($row = $enumeration->fetch_assoc()) {

        if(preg_match('!enum(.+)!', $row['Type'])) {

        $enum = preg_replace ('!^enum\((.+)\)$!', '$1', $row['Type']);

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

        } // while

        $enumeration->close();
        0