Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2924 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Afficher des informations concernant les tables d'une base MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher des informations concernant les tables d'une base MySQL

n°1355981
MS-DOS_199​1
www.newbie-project.net
Posté le 28-04-2006 à 14:25:16  profilanswer
 

Bonjour :)  
 
Je cherche à afficher un tableau avec une ligne par table SQL et dedans des infos telles que:
 

  • Nom de la table
  • Nombre d'enregistrements
  • Taille occupée par l'index et par les données


... Sauriez-vous comment faire ? :whistle:  
 
P.S: J'avais pensé à faire:

Code :
  1. if ($sql_tables = $MySQLi->query('SHOW TABLES'))
  2. {
  3.   $i = 0;
  4.   while($table = $sql_tables->fetch_row())
  5.   {
  6.     $data[$i] = array('name' => $table['name'],
  7.                        'rows' => $table['rows'],
  8.                        'Data_length' => $table['Data_length'],
  9.                        'Index_length' => $table['Index_length']
  10.                       );
  11.     $i++;
  12.   }
  13.   print_r($data);
  14. }

Mais ça ne marche pas :(


Message édité par MS-DOS_1991 le 28-04-2006 à 14:26:23

---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
mood
Publicité
Posté le 28-04-2006 à 14:25:16  profilanswer
 

n°1356037
chaced
Posté le 28-04-2006 à 15:34:37  profilanswer
 

fetch_row, ce n'est pas fetch_array plutot ? car le row ne renvoit pas de nom met juste le numéro de la colone.


---------------
CPU-Z | Timespy | Mes bd
n°1356054
MS-DOS_199​1
www.newbie-project.net
Posté le 28-04-2006 à 15:46:34  profilanswer
 

Citation :

fetch_row, ce n'est pas fetch_array plutot ? car le row ne renvoit pas de nom met juste le numéro de la colone.

Exact en fait dans mon script j'ai essayé fetch_row et $table[0], $table[1], etc ET fetch_array/fetch_assoc et $table['name'], $table['rows'], etc
 
Ca ne marche toujours pas :( Plus exactement, seul le nom des tables s'affiche.


Message édité par MS-DOS_1991 le 28-04-2006 à 15:47:45

---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
n°1356057
chaced
Posté le 28-04-2006 à 15:50:40  profilanswer
 

SHOW TABLES ça renvoit juste la liste des tables dans une colone se nomant Tables_in_nomdelabase
c'est plutot un SHOW TABLE STATUS qu'il te faut non ?


---------------
CPU-Z | Timespy | Mes bd
n°1356066
MS-DOS_199​1
www.newbie-project.net
Posté le 28-04-2006 à 15:58:09  profilanswer
 

chaced a écrit :

SHOW TABLES ça renvoit juste la liste des tables dans une colone se nomant Tables_in_nomdelabase
c'est plutot un SHOW TABLE STATUS qu'il te faut non ?


D'accord, mais comment je peux l'utiliser :whistle:  
le script n'affiche rien si je fait $MySQLi->query('SHOW TABLE STATUS')


---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
n°1356101
chaced
Posté le 28-04-2006 à 16:16:08  profilanswer
 

a ton fetch array faut lui passer $sql_tables
 

Code :
  1. $link=mysql_connect('localhost', 'root', '') or die(mysql_error());
  2.       mysql_select_db('test',$link) or die(mysql_error());
  3. if ($sql_tables = mysql_query('SHOW TABLE STATUS'))
  4. {
  5.  while($table = mysql_fetch_array($sql_tables))
  6.  {
  7.   $data[] = array('name' => $table['Name'],
  8.   'rows' => $table['Rows'],
  9.   'Data_length' => $table['Data_length'],
  10.   'Index_length' => $table['Index_length']
  11.   );
  12.  }
  13.  print_r($data);
  14. }

Message cité 1 fois
Message édité par chaced le 28-04-2006 à 16:17:09

---------------
CPU-Z | Timespy | Mes bd
n°1356110
MS-DOS_199​1
www.newbie-project.net
Posté le 28-04-2006 à 16:26:57  profilanswer
 

chaced a écrit :

a ton fetch array faut lui passer $sql_tables


Non, car je code en POO avec MySQLimproved donc ce sont des méthodes qu'il faut utiliser :non:  
 
Ce que je ne comprend pas, c'est que j'ai déjà essayé ces codes, mais ça ne reconnait pas "SHOW TABLE STATUS" :cry:  :cry:


---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
n°1356140
chaced
Posté le 28-04-2006 à 17:00:50  profilanswer
 

mon code sous php4 (oui je sais) et MySql 4.1 fonctionne bien pourtant...


Message édité par chaced le 28-04-2006 à 17:01:18

---------------
CPU-Z | Timespy | Mes bd
n°1356143
smaragdus
whores, drugs & J.S. Bach
Posté le 28-04-2006 à 17:04:38  profilanswer
 

Si tu es en MYSQL 5, utilise plutôt la DB 'INFORMATION_SCHEMA'. Elle permet d'accéder à toutes les info via des SELECT

n°1356173
MS-DOS_199​1
www.newbie-project.net
Posté le 28-04-2006 à 17:22:54  profilanswer
 

smaragdus a écrit :

Si tu es en MYSQL 5, utilise plutôt la DB 'INFORMATION_SCHEMA'. Elle permet d'accéder à toutes les info via des SELECT


Merci [:flity] je n'avais jamais regardé cette base de près  [:flity]  
 
je vous tiens au courant ;)


---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Afficher des informations concernant les tables d'une base MySQL

 

Sujets relatifs
erreur php/sql, (site à base de vwar)Question de base sur les tableaux HTML
Question crutiale : Access en tant que base multisites et multiusers ?optimisatiser la structure d'une base de données...
pb de base de données à free[VBA-E] afficher des données dans des cellules
convertir base de donnée excel en base de donnée SQLAmélioration de la structure des tables - problème d'évolution
Insertion de lignes différentes dans plusieurs tablesBase de donnée locale. Que choisir ?
Plus de sujets relatifs à : Afficher des informations concernant les tables d'une base MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR