Hier mal die Ausgabe von dem ganzen -> Das ding soll nix anderes machen als das was der Tabledump vom phpMyAdmin macht.....
CREATE TABLE categories (
id int(11) NOT NULL auto_increment,
PRIMARY KEY (id),
UNIQUE KEY (id),
KEY id_2 (id),
lang int(4) NOT NULL,
indication blob NOT NULL blob,
)
Folgende Probleme:
blob felder hab ich keine definiert, das sind textfelder... *Grml*
aufgrund der schleifenkonstruktion krieg ich den "," am ende nicht weg....
beim letzten Feld in dem fall indication schreibt er mir NOT NULL blob hin, obwohl das blob nach NOT NULL total falsch am platz ist..
Wer helfen kann bitte melden, eventuelle Verbesserungsvorschläge sind sehr hilfreich und auf jeden fall willkommen!
<?PHP
/* Datenbankserver - In der Regel die IP */ $db_server = "localhost";
/* Datenbankname */
$db_name = "dinkywínky";
/* Datenbankuser */
$db_user = "narf";
/* Datenbankpasswort */
$db_passwort = "blah";
/* Erstellt Connect zu Datenbank her */
$db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort);
$result = mysql_list_tables($db_name,$db);
$menge = mysql_num_rows($result);
$tablearray=array();
for($x=0;$x<$menge;$x++){
$table_name = mysql_tablename($result,$x);
$tablearray[$x]=$table_name;
}
for($i=0;$i<$menge;$i++) {
$result = mysql_query("SELECT * FROM $tablearray[$i]");
$number = mysql_num_fields($result);
echo "CREATE TABLE ";
echo $tablearray[$i];
echo " (<br>";
for($j=0;$j<$number;$j++) {
$type = mysql_field_type($result,$j);
$name = mysql_field_name($result,$j);
$flags = mysql_field_flags($result,$j);
$len = mysql_field_len($result,$j);
$sqldata = array(
$tablearray[$i] => array(
"name" => "$name",
"type" => "$type",
"flags" => "$flags",
"length" => "$len")
);
echo $sqldata["$tablearray[$i]"]['name'];
echo " ";
echo $sqldata["$tablearray[$i]"]['type'];
if($sqldata["$tablearray[$i]"]['type'] != "blob")
{
echo "(".$sqldata["$tablearray[$i]"]['length'].")";
}
echo " ";
$searchme=$sqldata["$tablearray[$i]"]['flags'];
$newdata="";
$dakeys="";
$newdata=eregi_replace("not_null","NOT NULL","$searchme");
$searchme=$newdata;
if(eregi("primary_key","$searchme"))
{
$newdata=eregi_replace("primary_key","","$searchme");
$searchme=$newdata;
$dakeys.="PRIMARY KEY (".$sqldata["$tablearray[$i]"]['name']."),<br>";
}
if(eregi("unique_key","$searchme"))
{
$newdata=eregi_replace("unique_key","","$searchme");
$searchme=$newdata;
$dakeys.="UNIQUE KEY (".$sqldata["$tablearray[$i]"]['name']."),<br>";
}
if(eregi("multiple_key","$searchme"))
{
$newdata=eregi_replace("multiple_key","","$searchme");
$searchme=$newdata;
$dakeys.="KEY ".$sqldata["$tablearray[$i]"]['name']."_2 (".$sqldata["$tablearray[$i]"]['name']."),<br>";
}
if(eregi("multiple_key","$searchme") || eregi("unique_key","$searchme") || eregi("primary_key","$searchme"))
{
echo $sqldata["$tablearray[$i]"]['flags'];
}
else
{
print"$searchme,";
print"<br>$dakeys";
}
}
echo " ) <br><br> ";
}
?>
Alles anzeigen
btw: wenns zu kompliziert is, schreib ich kommentare zum code...
mfg, Phil.