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. Modérateur
    Bonjour,

    Tu parles de phpmyadmin .. et tu nous montres une image de la console.....
    Tu veux quoi exactement ? et où ??
    0
    1. 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
    2. 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
    3. 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. 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
      2. 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
      3. 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
      4. 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
      5. 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
      6. 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
      7. 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 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
        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. 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