User:Pyramide/DB2wiki
From phpBB Development Wiki
DB2wiki
Use this script to generate the lists and tables on Tables and its subpages.
<?php
//This script is used to generate the pages at http://wiki.phpbb.com/Tables
//usage: http://yourserver/db2wiki.php for the list of tables
//and http://yourserver/db2wiki.php?table=phpbb_foo for individual tables
//Author: Pyramide (Frank Dreyer)
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
if(!defined('STDIN'))
{
header('Content-type:text/plain');
}
if(isset($_GET['table']))
{
$table = $_GET['table'];
}
elseif(isset($argv[1]))
{
$table = $argv[1];
}
else
{
//list of tables
?>
List of tables
{|border="1" cellspacing="0" cellpadding="3"
! name
! content
<?php
$sql = "SHOW TABLES";
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$name = $row[key($row)];
echo "|-\n";
echo "| [[/$name|$name]]\n";
echo "| tbd\n";
}
echo "|}";
exit;
}
if(strstr($table, '`'))
{
die('hacking attempt');
}
?>
description goes here
== Fields ==
{|border="1" cellspacing="0" cellpadding="5"
! column
! type (MySQL)
! content
! default
<?php
$sql = "desc `$table`";
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$def = $row['Default'];
if($row['Extra'] == 'auto_increment')
{
$def = 'auto_increment';
}
if($def == '')
{
$def = ' ';
}
$content = 'tbd';
if($row['Key'] == 'PRI')
{
$content = 'primary key';
}
echo "|-\n";
echo "| $row[Field]\n";
echo "| $row[Type]\n";
echo "| $content\n";
echo "| $def\n";
}
?>
|}
== Keys ==
{|border="1" cellspacing="0" cellpadding="5"
! name
! fields
<?php
$sql = "SHOW KEYS FROM `$table`";
$result = $db->sql_query($sql);
$keys = array();
while($row = $db->sql_fetchrow($result))
{
$keys[$row['Key_name']][] = $row['Column_name'];
}
foreach($keys as $name => $fields)
{
echo "|-\n";
echo '|rowspan="' . sizeof($fields) . '"| ' . $name . "\n";
for($i=0; $i<sizeof($fields); $i++)
{
if($i > 0)
{
echo "|-\n";
}
echo '|' . $fields[$i] . "\n";
}
}
?>
|}
<?php if($table == 'phpbb_config') { ?>
== Config values ==
{|border="1" cellspacing="0" cellpadding="5"
! name
! type
! description
<?php
$sql = "SELECT * FROM phpbb_config ORDER BY config_name ASC";
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$value = $row['config_value'];
if($value == '0' || $value == '1')
{
$type = 'bool (0/1)';
}
elseif(intval($value) == $value)
{
$type = 'integer';
}
else
{
$type = 'string';
}
echo "|-\n";
echo "| $row[config_name]\n";
echo "| $type\n";
echo "| tbd\n";
}
?>
|}
<?php } ?>

