
Display Create/Update/Check_time in PDF-Pages, printview, DB/Table structure and table dumps, if information is available (gathered by 'SHOW TABLE STATUS' for MySQL 3.23.XX).
351 lines
12 KiB
PHP
Executable File
351 lines
12 KiB
PHP
Executable File
<?php
|
|
/* $Id$ */
|
|
// vim: expandtab sw=4 ts=4 sts=4:
|
|
|
|
|
|
/**
|
|
* Gets the variables sent or posted to this script, then displays headers
|
|
*/
|
|
require('./libraries/grab_globals.lib.php3');
|
|
require('./header.inc.php3');
|
|
|
|
|
|
/**
|
|
* Defines the url to return to in case of error in a sql statement
|
|
*/
|
|
$err_url = 'db_details.php3?' . PMA_generate_common_url($db);
|
|
|
|
/**
|
|
* Settings for relations stuff
|
|
*/
|
|
require('./libraries/relation.lib.php3');
|
|
$cfgRelation = PMA_getRelationsParam();
|
|
|
|
/**
|
|
* Gets the list of the table in the current db and informations about these
|
|
* tables if possible
|
|
*/
|
|
// staybyte: speedup view on locked tables - 11 June 2001
|
|
if (PMA_MYSQL_INT_VERSION >= 32303) {
|
|
// Special speedup for newer MySQL Versions (in 4.0 format changed)
|
|
if ($cfg['SkipLockedTables'] == TRUE && PMA_MYSQL_INT_VERSION >= 32330) {
|
|
$local_query = 'SHOW OPEN TABLES FROM ' . PMA_backquote($db);
|
|
$result = PMA_mysql_query($local_query) or PMA_mysqlDie('', $local_query, '', $err_url);
|
|
// Blending out tables in use
|
|
if ($result != FALSE && mysql_num_rows($result) > 0) {
|
|
while ($tmp = PMA_mysql_fetch_array($result)) {
|
|
// if in use memorize tablename
|
|
if (eregi('in_use=[1-9]+', $tmp[0])) {
|
|
$sot_cache[$tmp[0]] = TRUE;
|
|
}
|
|
}
|
|
mysql_free_result($result);
|
|
|
|
if (isset($sot_cache)) {
|
|
$local_query = 'SHOW TABLES FROM ' . PMA_backquote($db);
|
|
$result = PMA_mysql_query($local_query) or PMA_mysqlDie('', $local_query, '', $err_url);
|
|
if ($result != FALSE && mysql_num_rows($result) > 0) {
|
|
while ($tmp = PMA_mysql_fetch_array($result)) {
|
|
if (!isset($sot_cache[$tmp[0]])) {
|
|
$local_query = 'SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ' LIKE \'' . addslashes($tmp[0]) . '\'';
|
|
$sts_result = PMA_mysql_query($local_query) or PMA_mysqlDie('', $local_query, '', $err_url);
|
|
$sts_tmp = PMA_mysql_fetch_array($sts_result);
|
|
$tables[] = $sts_tmp;
|
|
} else { // table in use
|
|
$tables[] = array('Name' => $tmp[0]);
|
|
}
|
|
}
|
|
mysql_free_result($result);
|
|
$sot_ready = TRUE;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!isset($sot_ready)) {
|
|
$local_query = 'SHOW TABLE STATUS FROM ' . PMA_backquote($db);
|
|
$result = PMA_mysql_query($local_query) or PMA_mysqlDie('', $local_query, '', $err_url);
|
|
if ($result != FALSE && mysql_num_rows($result) > 0) {
|
|
while ($sts_tmp = PMA_mysql_fetch_array($result)) {
|
|
$tables[] = $sts_tmp;
|
|
}
|
|
mysql_free_result($result);
|
|
}
|
|
}
|
|
$num_tables = (isset($tables) ? count($tables) : 0);
|
|
} // end if (PMA_MYSQL_INT_VERSION >= 32303)
|
|
else {
|
|
$result = PMA_mysql_list_tables($db);
|
|
$num_tables = ($result) ? @mysql_numrows($result) : 0;
|
|
for ($i = 0; $i < $num_tables; $i++) {
|
|
$tables[] = PMA_mysql_tablename($result, $i);
|
|
}
|
|
mysql_free_result($result);
|
|
}
|
|
|
|
if ($cfgRelation['commwork']) {
|
|
$comment = PMA_getComments($db);
|
|
|
|
/**
|
|
* Displays DB comment
|
|
*/
|
|
if (is_array($comment)) {
|
|
?>
|
|
<!-- DB comment -->
|
|
<p><i>
|
|
<?php echo htmlspecialchars(implode(' ', $comment)) . "\n"; ?>
|
|
</i></p>
|
|
<?php
|
|
} // end if
|
|
}
|
|
|
|
/**
|
|
* If there is at least one table, displays the printer friendly view, else
|
|
* an error message
|
|
*/
|
|
// 1. No table
|
|
if ($num_tables == 0) {
|
|
echo $strNoTablesFound;
|
|
}
|
|
// 2. Shows table informations on mysql >= 3.23.03 - staybyte - 11 June 2001
|
|
else if (PMA_MYSQL_INT_VERSION >= 32303) {
|
|
?>
|
|
|
|
<!-- The tables list -->
|
|
<table border="<?php echo $cfg['Border']; ?>">
|
|
<tr>
|
|
<th> <?php echo $strTable; ?> </th>
|
|
<th><?php echo $strRecords; ?></th>
|
|
<th><?php echo $strType; ?></th>
|
|
<?php
|
|
if ($cfg['ShowStats']) {
|
|
echo '<th>' . $strSize . '</th>';
|
|
}
|
|
echo "\n";
|
|
?>
|
|
<th><?php echo $strComments; ?></th>
|
|
</tr>
|
|
<?php
|
|
$i = $sum_entries = $sum_size = 0;
|
|
while (list($keyname, $sts_data) = each($tables)) {
|
|
$table = $sts_data['Name'];
|
|
$bgcolor = ($i++ % 2) ? $cfg['BgcolorOne'] : $cfg['BgcolorTwo'];
|
|
echo "\n";
|
|
?>
|
|
<tr>
|
|
<td bgcolor="<?php echo $bgcolor; ?>" nowrap="nowrap">
|
|
<b><?php echo htmlspecialchars($table); ?> </b>
|
|
</td>
|
|
<?php
|
|
echo "\n";
|
|
$mergetable = FALSE;
|
|
$nonisam = FALSE;
|
|
if (isset($sts_data['Type'])) {
|
|
if ($sts_data['Type'] == 'MRG_MyISAM') {
|
|
$mergetable = TRUE;
|
|
} else if (!eregi('ISAM|HEAP', $sts_data['Type'])) {
|
|
$nonisam = TRUE;
|
|
}
|
|
}
|
|
|
|
if (isset($sts_data['Rows'])) {
|
|
if ($mergetable == FALSE) {
|
|
if ($cfg['ShowStats'] && $nonisam == FALSE) {
|
|
$tblsize = $sts_data['Data_length'] + $sts_data['Index_length'];
|
|
$sum_size += $tblsize;
|
|
if ($tblsize > 0) {
|
|
list($formated_size, $unit) = PMA_formatByteDown($tblsize, 3, 1);
|
|
} else {
|
|
list($formated_size, $unit) = PMA_formatByteDown($tblsize, 3, 0);
|
|
}
|
|
} else if ($cfg['ShowStats']) {
|
|
$formated_size = ' - ';
|
|
$unit = '';
|
|
}
|
|
$sum_entries += $sts_data['Rows'];
|
|
}
|
|
// MyISAM MERGE Table
|
|
else if ($cfg['ShowStats'] && $mergetable == TRUE) {
|
|
$formated_size = ' - ';
|
|
$unit = '';
|
|
}
|
|
else if ($cfg['ShowStats']) {
|
|
$formated_size = 'unknown';
|
|
$unit = '';
|
|
}
|
|
?>
|
|
<td align="right" bgcolor="<?php echo $bgcolor; ?>">
|
|
<?php
|
|
echo "\n" . ' ';
|
|
if ($mergetable == TRUE) {
|
|
echo '<i>' . number_format($sts_data['Rows'], 0, $number_decimal_separator, $number_thousands_separator) . '</i>' . "\n";
|
|
} else {
|
|
echo number_format($sts_data['Rows'], 0, $number_decimal_separator, $number_thousands_separator) . "\n";
|
|
}
|
|
?>
|
|
</td>
|
|
<td nowrap="nowrap" bgcolor="<?php echo $bgcolor; ?>">
|
|
<?php echo (isset($sts_data['Type']) ? $sts_data['Type'] : ' '); ?>
|
|
</td>
|
|
<?php
|
|
if ($cfg['ShowStats']) {
|
|
echo "\n";
|
|
?>
|
|
<td align="right" bgcolor="<?php echo $bgcolor; ?>" nowrap="nowrap">
|
|
<?php echo $formated_size . ' ' . $unit . "\n"; ?>
|
|
</td>
|
|
<?php
|
|
echo "\n";
|
|
} // end if
|
|
} else {
|
|
?>
|
|
<td colspan="3" align="center" bgcolor="<?php echo $bgcolor; ?>">
|
|
<?php echo $strInUse . "\n"; ?>
|
|
</td>
|
|
<?php
|
|
}
|
|
echo "\n";
|
|
?>
|
|
<td bgcolor="<?php echo $bgcolor; ?>">
|
|
<?php echo $sts_data['Comment']; ?>
|
|
<?php
|
|
if (!empty($sts_data['Comment'])) {
|
|
$needs_break = '<br />';
|
|
} else {
|
|
$needs_break = '';
|
|
}
|
|
|
|
if ((isset($sts_data['Create_time']) && !empty($sts_data['Create_time']))
|
|
|| (isset($sts_data['Update_time']) && !empty($sts_data['Update_time']))
|
|
|| (isset($sts_data['Check_time']) && !empty($sts_data['Check_time']))) {
|
|
echo $needs_break;
|
|
?>
|
|
<table border="0" cellpadding="1" cellspacing="1" width="100%">
|
|
<?php
|
|
|
|
if (isset($sts_data['Create_time']) && !empty($sts_data['Create_time'])) {
|
|
?>
|
|
<tr>
|
|
<td style="font-size: <?php echo $font_smaller; ?>" align="right"><?php echo $strStatCreateTime . ': '; ?></td>
|
|
<td style="font-size: <?php echo $font_smaller; ?>" align="right"><?php echo PMA_localisedDate(strtotime($sts_data['Create_time'])); ?></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
if (isset($sts_data['Update_time']) && !empty($sts_data['Update_time'])) {
|
|
?>
|
|
<tr>
|
|
<td style="font-size: <?php echo $font_smaller; ?>" align="right"><?php echo $strStatUpdateTime . ': '; ?></td>
|
|
<td style="font-size: <?php echo $font_smaller; ?>" align="right"><?php echo PMA_localisedDate(strtotime($sts_data['Update_time'])); ?></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
if (isset($sts_data['Check_time']) && !empty($sts_data['Check_time'])) {
|
|
?>
|
|
<tr>
|
|
<td style="font-size: <?php echo $font_smaller; ?>" align="right"><?php echo $strStatCheckTime . ': '; ?></td>
|
|
<td style="font-size: <?php echo $font_smaller; ?>" align="right"><?php echo PMA_localisedDate(strtotime($sts_data['Check_time'])); ?></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
?>
|
|
</table>
|
|
<?php
|
|
}
|
|
?>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
// Show Summary
|
|
if ($cfg['ShowStats']) {
|
|
list($sum_formated, $unit) = PMA_formatByteDown($sum_size, 3, 1);
|
|
}
|
|
echo "\n";
|
|
?>
|
|
<tr>
|
|
<th align="center">
|
|
<b><?php echo sprintf($strTables, number_format($num_tables, 0, $number_decimal_separator, $number_thousands_separator)); ?></b>
|
|
</th>
|
|
<th align="right" nowrap="nowrap">
|
|
<b><?php echo number_format($sum_entries, 0, $number_decimal_separator, $number_thousands_separator); ?></b>
|
|
</th>
|
|
<th align="center">
|
|
<b>--</b>
|
|
</th>
|
|
<?php
|
|
if ($cfg['ShowStats']) {
|
|
echo "\n";
|
|
?>
|
|
<th align="right" nowrap="nowrap">
|
|
<b><?php echo $sum_formated . ' ' . $unit; ?></b>
|
|
</th>
|
|
<?php
|
|
}
|
|
echo "\n";
|
|
?>
|
|
<th> </th>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
} // end case mysql >= 3.23.03
|
|
|
|
// 3. Shows tables list mysql < 3.23.03
|
|
else {
|
|
$i = 0;
|
|
echo "\n";
|
|
?>
|
|
|
|
<!-- The tables list -->
|
|
<table border="<?php echo $cfg['Border']; ?>">
|
|
<tr>
|
|
<th> <?php echo $strTable; ?> </th>
|
|
<th><?php echo $strRecords; ?></th>
|
|
</tr>
|
|
<?php
|
|
while ($i < $num_tables) {
|
|
$bgcolor = ($i % 2) ? $cfg['BgcolorOne'] : $bgcolor = $cfg['BgcolorTwo'];
|
|
echo "\n";
|
|
?>
|
|
<tr>
|
|
<td bgcolor="<?php echo $bgcolor; ?>" nowrap="nowrap">
|
|
<b><?php echo htmlspecialchars($tables[$i]); ?> </b>
|
|
</td>
|
|
<td align="right" bgcolor="<?php echo $bgcolor; ?>" nowrap="nowrap">
|
|
<?php PMA_countRecords($db, $tables[$i]); ?>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
$i++;
|
|
} // end while
|
|
echo "\n";
|
|
?>
|
|
</table>
|
|
<?php
|
|
} // end if
|
|
|
|
|
|
/**
|
|
* Displays the footer
|
|
*/
|
|
echo "\n";
|
|
?>
|
|
<script type="text/javascript" language="javascript1.2">
|
|
<!--
|
|
function printPage()
|
|
{
|
|
document.all.print.style.visibility = 'hidden';
|
|
// Do print the page
|
|
if (typeof(window.print) != 'undefined') {
|
|
window.print();
|
|
}
|
|
document.all.print.style.visibility = '';
|
|
}
|
|
//-->
|
|
</script>
|
|
<?php
|
|
echo '<br /><br /> <input type="button" style="visibility: ; width: 100px; height: 25px" name="print" value="' . $strPrint . '" onclick="printPage()">' . "\n";
|
|
|
|
require('./footer.inc.php3');
|
|
?>
|