Show full columns from

Résolu
Bonjour,
Je voudrais vous demander comment on peux faire comme l'image ci-dessous. Dans phpmyadmin j'ai trouvé "show full columns from cdc_configsite; mais pour le quadrillage existe t-il une solution.
Je vous remercie.

14 réponses

Résumé de la discussion

Le besoin central est d'obtenir un affichage tabulaire des colonnes et des structures des tables MySQL, au-delà du simple affichage texte dans phpMyAdmin ou dans la console. Plusieurs solutions permettent d’obtenir ce quadrillage : utiliser SHOW FULL COLUMNS FROM nom_table dans CLI, visualiser les résultats dans phpMyAdmin, ou employer un script PHP générant une table HTML. Des échanges apportent des conseils pratiques : lister les tables avec SHOW TABLES, récupérer la structure via SHOW FULL COLUMNS, et adopter un script qui affiche la table. D'autres échanges proposent des exemples concrets, notamment un script parcourant toutes les tables et affichant leur structure en tableau HTML, ou des commandes CLI pour se connecter et sélectionner la base.

Bobot (l’IA à votre service)
  1. Bonjour,
    Je te remercie, c'est sympa.
    Je vais mettre ton script en place.
    Cordialement.
    0
    1. Modérateur
      N'oublie pas .. de mettre le sujet ... en RESOLU.
      Merci;
      0
  2. Modérateur
    Tiens..
    voila un petit script qui te donnera la structure de toutes tes tables de ta bdd
    (il faut changer les variables de connexion à la bdd pour que ça marche)
    <?php
    header('Content-Type: text/html; charset=utf-8');
    
    //Affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    
    // Infos de connexion à la bdd
    define("BDD_HOST","localhost");
    define("BDD_DATABASE","exemples_ajax");
    define("BDD_USER","monuserbdd");
    define("BDD_PASSWORD", "unpassword");
    
    //---------------------------------------------------------------------//
    // FONCTIONS
    //---------------------------------------------------------------------//
    
    /**
    * Fonction pour établir la connexion à la bdd
    * return : l'objet de connexion
    */
    if(!function_exists("bdd_connect")){
      function bdd_connect(){
        try{
           $bdd =new PDO('mysql:host='.BDD_HOST.';dbname='.BDD_DATABASE.'; charset=utf8', BDD_USER, BDD_PASSWORD);
           // Activation des erreurs PDO
           $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
           // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
           $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        } catch(PDOException $e) {
           die('Erreur : ' . $e->getMessage());
        }
        return $bdd;
      }
    }
    
    /**
    * Fonction réaliser une requête de type SELECT
    * @sql (string) : la requête à réaliser
    * @datas : les valeurs à passer à la requête si il y en a.
    * return : le résultat de la requête
    */
    if(!function_exists("querySelect")){
      function querySelect($sql,$datas=NULL){
        global $bdd;
        $result = NULL;
        //Execution de la requete
        try{
          $requete = $bdd -> prepare($sql) ;
          $requete->execute($datas) ;
          //on retourne un array contenant les résultats
          $result = $requete->fetchAll();
        }catch(Exception $e){
          // en cas d'erreur :
           echo " Erreur ! ".$e->getMessage();
           echo " Les datas : " ;
          print_r($datas);
        }
        return $result;
      }
    }
    
    
    /**
    * Récupère la liste des tables de la bdd
    */
    if(!function_exists("get_liste_tables")){
      function get_liste_tables(){
        $sql = "SHOW TABLES";
        return querySelect($sql);
      }
    }
    
    /**
    * Récupère la structure d'une table
    */
    if(!function_exists("get_structure_table")){
      function get_structure_table($table){
        $sql = "SHOW FULL COLUMNS FROM " . $table;
        return querySelect($sql);
      }
    }
    
    //---------------------------------------------------------------------//
    // Debut du script :
    //---------------------------------------------------------------------//
    //connexion à la bdd
    $bdd = bdd_connect();
    
    //liste des tables de la bdd
    $tables = get_liste_tables();
    
    
    
    $structure = array();
    foreach($tables as $i=>$dataTable){
      foreach($dataTable as $k=>$tableName){
        if($tableName != 'information_schema'){
          $structure[$tableName] = get_structure_table($tableName);
        }
      }
    }
    
    ?>
    
    <!doctype html>
    <html lang="fr">
      <head>
        <title>Exemples AJAX avec JQUERY</title>
        <meta charset="utf8">
        <style>
          table {
           border-width:1px; 
           border-style:solid; 
           border-color:darkgray;
           border-collapse:collapse;
           width:900px;
           text-align:center
           }
          td ,th{ 
           border-width:1px;
           border-style:solid; 
           border-color:darkgray;
           width:50%;
           }
        </style>
      </head>
      <body>
    
        <?php
        foreach($structure as $TBL=>$FIELD){
          
            echo "<div style='margin:5px;'>
                  <br><h3>Table :".$TBL."</h3>";
            
            echo "<table>
                  <thead>
                    <tr>
                      <th>Field</th>
                      <th>Type</th>
                      <th>Collation</th>
                      <th>Null</th>
                      <th>Key</th>
                      <th>Default</th>
                      <th>Extra</th>
                      <th>Privileges</th>
                      <th>Comment</th>
                    </thead>
                    <tbody>";
             foreach($FIELD as $F){
              echo "<tr>";
                foreach($F as $C=>$Value){
                 echo "<td>".$Value."</td>";
                }
              echo "</tr>";
             }
                    
            echo "</tbody>
                </table>
                </div>";
    
        }
        ?>
      </tbody>
     </html>
    


    0
    1. Modérateur
      Après... au lieu de faire un html qui s'affichera dans le navigateur.. rien ne t'empèches de le modifier pour générer un csv.

      Par exemple :
      <?php
      header('Content-Type: text/html; charset=utf-8');
      
      //Affichage des erreurs PHP
      error_reporting(E_ALL);
      ini_set('display_errors', TRUE);
      ini_set('display_startup_errors', TRUE);
      
      
      // Infos de connexion à la bdd
      define("BDD_HOST","localhost");
      define("BDD_DATABASE","exemples_ajax");
      define("BDD_USER","monuserbdd");
      define("BDD_PASSWORD", "unpassword");
      
      //---------------------------------------------------------------------//
      // FONCTIONS
      //---------------------------------------------------------------------//
      
      /**
      * Fonction pour établir la connexion à la bdd
      * return : l'objet de connexion
      */
      if(!function_exists("bdd_connect")){
        function bdd_connect(){
          try{
             $bdd =new PDO('mysql:host='.BDD_HOST.';dbname='.BDD_DATABASE.'; charset=utf8', BDD_USER, BDD_PASSWORD);
             // Activation des erreurs PDO
             $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
             // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
             $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
          } catch(PDOException $e) {
             die('Erreur : ' . $e->getMessage());
          }
          return $bdd;
        }
      }
      
      /**
      * Fonction réaliser une requête de type SELECT
      * @sql (string) : la requête à réaliser
      * @datas : les valeurs à passer à la requête si il y en a.
      * return : le résultat de la requête
      */
      if(!function_exists("querySelect")){
        function querySelect($sql,$datas=NULL){
          global $bdd;
          $result = NULL;
          //Execution de la requete
          try{
            $requete = $bdd -> prepare($sql) ;
            $requete->execute($datas) ;
            //on retourne un array contenant les résultats
            $result = $requete->fetchAll();
          }catch(Exception $e){
            // en cas d'erreur :
             echo " Erreur ! ".$e->getMessage();
             echo " Les datas : " ;
            print_r($datas);
          }
          return $result;
        }
      }
      
      
      /**
      * Récupère la liste des tables de la bdd
      */
      if(!function_exists("get_liste_tables")){
        function get_liste_tables(){
          $sql = "SHOW TABLES";
          return querySelect($sql);
        }
      }
      
      /**
      * Récupère la structure d'une table
      */
      if(!function_exists("get_structure_table")){
        function get_structure_table($table){
          $sql = "SHOW FULL COLUMNS FROM " . $table;
          return querySelect($sql);
        }
      }
      
      //---------------------------------------------------------------------//
      // Debut du script :
      //---------------------------------------------------------------------//
      //connexion à la bdd
      $bdd = bdd_connect();
      
      //liste des tables de la bdd
      $tables = get_liste_tables();
      
      
      
      $structure = array();
      foreach($tables as $i=>$dataTable){
        foreach($dataTable as $k=>$tableName){
          if($tableName != 'information_schema'){
            $structure[$tableName] = get_structure_table($tableName);
          }
        }
      }
      
      
      $output = "";
      $delimiter = ";";
       foreach($structure as $TBL=>$FIELD){
          $output .= PHP_EOL  .PHP_EOL ;
          $output .= "--------------------------------------------------------------------------------------";
          $output .= PHP_EOL . "Table :".$TBL . PHP_EOL;
          $output .= "--------------------------------------------------------------------------------------";
          $output .= PHP_EOL;
          foreach($FIELD as $F){
            $output .= PHP_EOL;
            foreach($F as $C=>$Value){
              $output .= utf8_decode($Value).$delimiter;
            }
          }
       }
      
        
        
      //Send headers
      $filename = "StructureTbl.csv";
      header("Content-type: application/octet-stream");
      header("Content-Disposition: attachment; filename=$filename");
      header("Pragma: no-cache");
      header("Expires: 0");
      
      
      print_r($output);
      
      
      
          
      

      Si tu l'ouvres avec Excel.. il devrait déjà être mis en forme.
      0
  3. Merci en fait j'ai dit une bétise tout est rentré dans l'ordre je te remercie.
    0
    1. Modérateur
      N'oublies pas de mettre le sujet en RESOLU.
      0
  4. Super je te remercie tout ce que je souhaitais en fait il y a juste un tout petit détail vraiment insignifiant mais on sait jamais....
    Dans la colonne Commentaire les mot s'arrête aux accent par exemple lorsqu'il y a "date de début" la commande affiche "date de d" existe t-il une commande pour résoudre cela.
    Encore merci
    0
    1. Merci ça c'est bon pour le local j'ai bien acces à mes BDD.
      0
      1. Modérateur
        Au fait... dans phpmyadmin .. lorsque tu fais la commande show full columns.....
        Tu verras, en dessous du résultat tu dois avoir un bouton du genre
         Version imprimable (avec textes complets) 

        regarde ce que ça donne... ça pourrait surement te convenir non ?

        Et puis au pire.. tu selectionnes le tableau avec ta souris, tu copies, puis tu colles dans un fichier excel (ou tout autre tableau)...
        0
    2. Toujours pareil même en local
      mysql> mysql -h 127.0.0.1 -u root -p;
      ERROR 1064 (42000): Erreur de syntaxe près de 'mysql -h 127.0.0.1 -u root -p' à la ligne 1
      0
      1. Modérateur
        En fait c'est normal...
        Si tu es passé par la console mysql .. tu es, normalement, déjà connecté à mysql...
        Essaye donc de faire
        show databases;
        
        0
    3. ca me retourne cette erreur tout au début en fait???
      Erreur de syntaxe près de 'mysql -h mysql5-2.300gp -u nom_user -p' à la ligne 1
      0
      1. Modérateur
        Elle est où ta bdd ???
        J'ai l'impression que tu essais d'accéder à une bdd distante..... (contenant un - qui plus est...)
        Et puis.. c'est le host qu'il faut mettre (le hostname ou son adresse ip)

        Attention : Si il s'agit d'une BDD hébergée sur un serveur web... il faut s'assurer qu'elle autorise les connexions externes.
        En général (lorsqu'il s'agit de serveurs mutualisés surtout...) ... seul phpmyadmin fonctionne... et aucune connexion distante n'est permise.
        0
      2. @jordane45oui je suis bien chez un hébergeur mutualisé je vais regarder ça...
        Mais pourquoi à ton avis même en local j'ai le soucis?
        0
    4. En fait quand on ouvre la console par défault c'est mysql> et ensuite je tape ma commande on le vois sur ton lien que je suis d'ailleurs en train de regarder.
      0
      1. Modérateur
        Tu devrais commencer uniquement par :

        mysql -h mon_serveur_mysql -u nom_user -p


        Si tu es en "local" sur ton ordi, tu auras par exemple :

        mysql -h 127.0.0.1 -u root -p

        Une fois validé par entrée il te demandera la password.
        Une fois connecté, tu pourras "choisir" la bdd;

        use nom_base_de_donnees;


        En gros, ça donnera ça :

        mysql> mysql -h 127.0.0.1 -u root -p
        Enter password:******
        mysql> use TABDD;
        Database changed
        mysql>
        0
    5. Bonjour
      Une toute petite chose lorsque je veux me connecter à mon serveur mysql en saisissant la commande suivante...
      mysql> mysql -h mon_serveur_mysql -u nom_user -p nom_base_de_donnees

      cela me dit erreur de syntax près de.......
      J'ai essayé plusieurs solutions toujours la même réponse.
      Peux tu me donner ton avis s'il te plait.
      Je te remercie
      0
      1. Modérateur
        Rassure moi ... dans la commande que tu tapes .... tu ne mets pas : "mysql> " hein ???
        Tiens, ça devrait t'aider : https://openclassrooms.com/fr/courses/1313136-pour-aller-plus-loin/1313205-avant-de-commencer-utilisation-de-la-console-mysql
        0
    6. Pour mon soucis il faut que je me connecte en fait avec la console mysql.
      Merci
      0
      1. Modérateur
        Ben donc tu as déjà le bon resultat...
        Suffit de faire une redirection vers un fichier et ça devrait être bon
        0
    7. en fait moi ce que souhaiterai c'est d'avoir non pas les données mais la structure c'est à dire les champs à l'identique comme la commande "show full columns from matable;
      0
      1. phpmyadmin
        0
        1. Modérateur
          Dans ce cas tu exportes le résultat en csv et tu l'ouvres dans un tableur (comme excel)
          0
      2. Bonjour, je voudrais lister mes tables dans un fichier avec le quadrillage comme le montre l'image en fait, style tableau cela offre une meilleur lisibilité.
        Merci
        0
        1. Modérateur
          Depuis où
          La console ou phpmyadmin ?
          0
      3. Modérateur
        Bonjour,

        Tu parles de phpmyadmin .. et tu nous montres une image de la console.....
        Tu veux quoi exactement ? et où ??
        0