Estrarre tabelle dal proprio Database MySql e visualizzarle attraverso pagina Php

Mi serviva far visualizzare le tabelle del mio Database in modo da poter istruire l’utente su quali campi poteva effettuare la query, grazie a David Walsh (http://davidwalsh.name) sono arrivato a tale conclusione:

Schermata 2013-07-18 alle 20.04.51

Prima di passare alla pratica dovete avere già il database pronto e collegato al webserver, idem mysql.

Passiamo all’implementazione:

Potreste scrivere tutto il codice direttamente in una pagina, io preferisco scindere la sessione della connessione con il database con quella della configurazione per poi creare una terza pagina dove inseriremo i risultati delle query per la visualizzazione delle tabelle.

File di configurazione lo chiameremo config_db.php

<?
php$db_host='127.0.0.1';
$db_user='root';
$db_password='';
$db_name='TSA_Evolution';
?>

File di connessione che chiameremo connessione_db.php

<?php
$db_host='127.0.0.1:3306';
$db_user='root';
$db_password='';
$db_name='TSA_Evolution';
//creo direttamente un file indipendende per la connessione e lo inserisco nel file che desidero
$connessione = mysql_connect($db_host, $db_user, $db_password); 
//se avessi voluto connettermi sull'host miodominio.it avrei dovuto inserire $connessione = mysql_connect('ip:porta', 'utente', 'pwd');
if (!$connessione) // è come dire($connessione== 0)
 die ("Connessione non riuscita: " .mysql_error());
echo "Connesso al web server! "; 
echo "<br>";
$vistadatabase= mysql_select_db('TSA_Evolution');
if ($vistadatabase==0)
 die ("sono morto perche: " .mysql_error());
echo "Accesso al database di TSA Evolution----> OK";
echo "<br>";
?>

 

E infine il terzo file ossia l’esposizione delle tabelle compreso di css e dove andremo a richiamare i due file (configurazione e connessione):

<style>
table.db-table { border-right:1px solid #ccc; border-bottom:1px solid #ccc; }
table.db-table th { background:#eee; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
table.db-table td { padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
</style>
<?php
/* connect to the db */
require 'config_db.php';
require 'connessione_db.php';
//$connection = mysql_connect('localhost','username','password');
//mysql_select_db('my_db',$connection);

/* show tables */
$result = mysql_query('SHOW TABLES') or die('cannot show tables');
while($tableName = mysql_fetch_row($result)) {
$table = $tableName[0];
 
 echo '<h3>',$table,'</h3>';
 $result2 = mysql_query('SHOW COLUMNS FROM '.$table) or die('cannot show columns from '.$table);
 if(mysql_num_rows($result2)) {
 echo '<table cellpadding="0" cellspacing="0" class="db-table">';
 echo '<tr><th>Field</th><th>Type</th><th>Null</th><th>Key</th><th>Default<th>Extra</th></tr>';
 while($row2 = mysql_fetch_row($result2)) {
 echo '<tr>';
 foreach($row2 as $key=>$value) {
 echo '<td>',$value,'</td>';
 }
 echo '</tr>';
 }
 echo '</table><br />';
 }
}
?>

 

Ora richiamate la vostra pagina sul vostro browser e potrete vedere come è strutturato il vostro database.

Per qualsiasi informazione chiedete pure.

Good Luck

Alessio