<?php
include_once 'functions.php';

if( !isset( $_GET[ "database" ] ) || $_GET[ "database" ] == "" )
{
    pr( "El nombre de la Base de Datos es importante." );
    pr( "Parametro: [database=]" );
    exit;
}

$s_DatabaseName = $_GET[ "database" ];

if( !isset( $_GET[ "table" ] ) || $_GET[ "table" ] == "" )
{
    pr( "El nombre de la Tabla es importante." );
    pr( "Parametro: [table=]" );
    exit;
}

$s_TableName = $_GET[ "table" ];

$link = @mysql_connect( "localhost", "root", "" );
mysql_select_db( $s_DatabaseName );

$s_Code     = "";
$s_FileName = "$s_TableName.xml";

$s_Sql = "desc $s_TableName;";
$rs = mysql_query( $s_Sql, $link );
if( mysql_num_rows( $rs ) > 0 )
{
    $s_Code .= '&lt;?xml version="1.0"?><br>';
    $s_Code .= '&lt;ERwin4 FileVersion="4252"><br>';
    $s_Code .= $s_Tab.'&lt;Model DBMSMinorVersion="0" DBMSVersion="9" TargetServer="174" ModelType="3" id="model_000001" database="'.$s_DatabaseName.'"><br>';
    $s_Code .= $s_Tab.$s_Tab.'&lt;Entity_Groups><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.'&lt;Entity id="entity_000001" Name="'.$s_TableName.'"><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;EntityProps><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Name>'.$s_TableName.'&lt;/Name><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Physical_Name>'.$s_TableName.'&lt;/Physical_Name><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/EntityProps><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Attribute_Groups><br>';
    $i = 1;
    while ( $row = mysql_fetch_array( $rs, MYSQL_ASSOC ) ) 
    {
        $s_Id = "f_".str_pad( $i, 10, "0", STR_PAD_LEFT);
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Attribute id="'.$s_Id.'" Name="'.$row['Field'].'"><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;AttributeProps><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Name>'.$row['Field'].'&lt;/Name><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Physical_Name>'.$row['Field'].'&lt;/Physical_Name><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Datatype>'.$row['Type'].'&lt;/Datatype><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Order>'.$i.'&lt;/Order><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/AttributeProps><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/Attribute><br>';

        if( $row['Key'] == "PRI" )
        {
            $a_Primary[] = $s_Id;
        }

        //pr( $row );
        $i++;
    }
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/Attribute_Groups><br>';

    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Key_Group_Groups><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Key_Group id="" Name="Primary Key"><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Key_Group_Member_Groups><br>';
    foreach ( $a_Primary as $key => $value ) 
    {
        $s_Id = "k_".str_pad( $key, 10, "0", STR_PAD_LEFT);

        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Key_Group_Member id="'.$s_Id.'" Name="1"><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Key_Group_MemberProps><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Key_Group_Member_Column>'.$value.'&lt;/Key_Group_Member_Column><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Key_Group_Sort_Order>ASC&lt;/Key_Group_Sort_Order><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;Key_Group_Position>'.$key.'&lt;/Key_Group_Position><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/Key_Group_MemberProps><br>';
        $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/Key_Group_Member><br>';
    }
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/Key_Group_Member_Groups><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/Key_Group><br>';
    $s_Code .= $s_Tab.$s_Tab.$s_Tab.$s_Tab.'&lt;/Key_Group_Groups><br>';

    $s_Code .= $s_Tab.$s_Tab.$s_Tab.'&lt;/Entity><br>';
    $s_Code .= $s_Tab.$s_Tab.'&lt;/Entity_Groups><br>';
    $s_Code .= $s_Tab.'&lt;/Model><br>';
    $s_Code .= '&lt;/ERwin4><br>';
}

$s_NombreXml = "xml";
if ( !file_exists( $s_NombreXml ) )
{
    mkdir( $s_NombreXml );
}

$i_archivo = fopen( $s_NombreXml."/".$s_FileName, "w" );
$s_clase = str_replace( "&lt;", "<", $s_Code );
$s_clase = str_replace( "<br>", "\n", $s_clase );
$s_clase = str_replace( "&nbsp;&nbsp;&nbsp;&nbsp;", "    ", $s_clase );
$s_clase = str_replace( "&nbsp;", " ", $s_clase );
fputs ( $i_archivo, $s_clase );
fclose( $i_archivo );
?>
<div style = "margin: 5px 20px 20px;">
    <div class= "smallfont" style = "margin-bottom: 2px;">codigo XML: <?php echo $s_FileName; ?></div>
    <div class= "alt2" dir= "ltr" style = "border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 100%; height: 60%; text-align: left;">
        <pre style = "white-space: nowrap;" lang="xml">
            <code lang="xml"><?php echo $s_Code ?></code>
        </pre>
    </div>
</div>

