Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu] lister les tables

Posted by laurentb on 09/12/2013 15:47

Bonjour, Je cherche à lister les tables de la base de donnée. J'ai bien trouvé jDbSchema::getTables() dans l'api et vu le nom je pense que ça devrait permettre de le faire, mais impossible de m'en sortir

$cnx = jDb::getConnection();
$sho=jDbSchema($cnx);
$t=$sho::getTables();
    			
foreach ($t as $elm){
    $contenu .= $elm;
}

Si quelqu'un peut m'aider
Merci par avance
Laurent

  [Opened] Re: lister les tables

Reply #1 Posted by e-media on 09/13/2013 14:35

Bonjour,

Normal on n'instancie pas une classe abstraite !

Il faut lire la doc : Schémas et autres outils drivers pour jDb

et surtout l'incontournable Doc : API !

       $cnx = jDb::getConnection();
       

       $tables= $cnx->schema()->getTables();

       $contenu="";
       foreach ($tables as $elm){
           
         $contenu .= $elm->getName()."<br/>";
       }
       echo $contenu;

Bonne utilisation de JELIX

@+ e-media


e-media

  [Opened] lister les tables

Reply #2 Posted by laurentb on 09/14/2013 14:13

merci e-media pour tes conseils,

J'ai bien étudié les docs que tu m'as indiquées, mais je n'arrive pas à faire la connexion entre elles. Si j'ai bien compris je dois instencier la classe mysqlDbSchema qui étend jDbSchema ... Mais je n'ai pas compris la relation entre jDb et mysql, j'écume la doc et le net, mais je n'arrive pas à trouver un bout d'exemple, je m'arrache les cheveux.

Peux tu m'en dire un peu plus sur l'utilisation de mysqlDbSchema.

a+ Laurent

  [Opened] lister les tables

Reply #3 Posted by e-media on 09/15/2013 16:00

Ce que dit la doc : 1 - à propos de schéma et autres outils : Ces classes sont pour le moment assez expérimentales, et tous les drivers ne sont pas supportés 2 - Vous pouvez récupérer un objet jDbSchema en appelant la méthode schema () d'un objet jDbConnection.

Dans l'exemple de code que j'ai mis dans le post précédent : c'est ce qui est fait avec $cnx->schema()

du coup on peut utiliser $cnx->schema()->getTables() qui renvoit un objet jDbtable et la doc API dit qu'on accède au nom de la table via la methode getName()

Voilà, en espérant que celà puisse t'aider.

e-media


e-media

  [Opened] [Résolu] lister les tables

Reply #4 Posted by laurentb on 09/16/2013 08:32

Un grand merci pour tes explications,

Je n'avais pas vu que le bout de code que tu m'avais donné était la solution (je vais acheter des lunettes).

Du coup, je comprends pas mal de chose sur l'utilisation de l'api.

Il me reste encore à extraire le nom des champs des tables listées, mais avec les explications que tu m'as données et la doc de l'api, je devrais m'en sortir ...

A bientôt Encore merci Laurent

  [Opened] [Résolu] lister les tables

Reply #5 Posted by e-media on 09/16/2013 09:24

Pas de quoi.

Si ca te permet d'expérimenter et d'apprendre ce fabuleux Framework...

Merci surtout à Laurent Jouanneau et à la "master team".

@+ e-media


e-media

 
Page
  1. [Résolu] lister les tables