<?php
include("resources/class.database.php");
$database = new Database();
if($_REQUEST["f"]=="")
{
?>
<font face="Arial" size="3"><b>
PHP MYSQL Class Generator
</b>
</font>
<font face="Arial" size="2"><b>
<form action="generator.php" method="POST" name="FORMGEN">
1) Select Table Name:
<br>
<select name="tablename">
<?php
$database->OpenLink();
$tablelist = mysql_list_tables($database->database, $database->link);
while ($row = mysql_fetch_row($tablelist)) {
print "<option value=\"$row[0]\">$row[0]</option>";
}
?>
</select>
<p>
2) Type Class Name (ex. "test"): <br>
<input type="text" name="classname" size="50" value="">
<p>
3) Type Name of Key Field:
<br>
<input type="text" name="keyname" value="" size="50">
<br>
<font size=1>
(Name of key-field with type number with autoincrement!)
</font>
<p>
<input type="submit" name="s1" value="Generate Class">
<input type="hidden" name="f" value="formshowed">
</form>
</b>
</font>
<p>
<font size="1" face="Arial">
<a href="#" target="_blank">
this is a script by Bryan Jayson Tan
</a>
</font>
<?php
} else {
// fill parameters from form
$table = $_REQUEST["tablename"];
$class = $_REQUEST["classname"];
$key = $_REQUEST["keyname"];
$excludes = $_REQUEST["exclude"];
$excludes = explode(",", $excludes);
$dir = dirname(__FILE__);
$filename = $dir . "/resources/" . "class." . $class . ".php";
// if file exists, then delete it
if(file_exists($filename))
{
unlink($filename);
}
// open file in insert mode
$file = fopen($filename, "w+");
$filedate = date("d.m.Y");
$c = "";
$c = "<?php
/*
*
* -------------------------------------------------------
* CLASSNAME: $class
* GENERATION DATE: $filedate
* CLASS FILE: $filename
* FOR MYSQL TABLE: $table
* FOR MYSQL DB: $database->database
* -------------------------------------------------------
*
* CODE GENERATED BY: BRYAN JAYSON TAN
* DATE EDIT: MARCH 26 2010
* ADDED METHOD: init(), selectOne(), selectAll(), toString()
* EDITED METHOD: update(), delete()
* DATE EDIT: JULY 31 2010
* ADDED METHOD: doCount()
* DATE EDIT: AUGUST 19, 2010
* EDITED METHOD: selectOne, selectAll,and doCount make them static
* -------------------------------------------------------
*
*/
include_once(dirname(__FILE__).\"/class.database.php\");
// **********************
// CLASS DECLARATION
// **********************
class $class
{ // class : begin
// **********************
// ATTRIBUTE DECLARATION
// **********************
private $$key; // KEY ATTR. WITH AUTOINCREMENT
";
$sql = "SHOW COLUMNS FROM $table;";
$database->query($sql);
$result = $database->result;
while ($row = mysql_fetch_row($result))
{
$col=$row[0];
if($col!=$key)
{
$c.= "
private $$col; // (normal Attribute)";
} // endif
//"print "$col";
} // endwhile
$cdb = "$" . "database";
$cdb2 = "database";
$c.="
private $cdb; // Instance of class database
";
$cthis = "$" . "this->";
$thisdb = $cthis . $cdb2 . " = " . "new Database();";
$c.= "
// **********************
// CONSTRUCTOR METHOD
// **********************
function $class()
{
$thisdb
}
";
$c.="
// **********************
// GETTER METHODS
// **********************
";
// GETTER
$database->query($sql);
$result = $database->result;
while ($row = mysql_fetch_row($result))
{
$col=$row[0];
$pieces = explode("_",$col);
$getname = "";
foreach($pieces as $piece)
{
$getname .= ucfirst($piece);
}
$mname = "get" . $getname . "()";
$mthis = "$" . "this->" . $col;
$c.="
public function $mname
{
return $mthis;
}
";
}
$c.="
// **********************
// SETTER METHODS
// **********************
";
// SETTER
$database->query($sql);
$result = $database->result;
while ($row = mysql_fetch_row($result))
{
$col=$row[0];
$val = "$" . "val";
$pieces = explode("_",$col);
$getname = "";
foreach($pieces as $piece)
{
$getname .= ucfirst($piece);
}
$mname = "set" . $getname . "($" . "val)";
$mthis = "$" . "this->" . $col . " = ";
$c.="
public function $mname
{
$mthis $val;
}
";
}
// create by Bryan Jayson Tan
// Date Created: March 26 2010
$row = "$" . "row";
$c.="
// **********************
// INIT METHOD
// **********************
public function init($row)
{
";
$sql = "SHOW COLUMNS FROM $table;";
$database->query($sql);
$result = $database->result;
while ($row = mysql_fetch_row($result))
{
$col=$row[0];
$cthis = "$" . "this->" . $col . " = $" . "row->" . $col;
$c.="
$cthis;
";
}
$c.="
}
";
// ------------------- to String --------------------
$tostring = "$" . "s";
$c.="
// **********************
// TO STRING METHOD
// **********************
public function toString()
{
";
$sql = "SHOW COLUMNS FROM $table;";
$database->query($sql);
$result = $database->result;
$cthis = $tostring . " = '';\n\n";
while ($row = mysql_fetch_row($result))
{
$col=$row[0];
$cthis .= "" . $tostring . " .= '" . $col . ": '." . "$" . "this->" . $col . " . ', ';";
$cthis .= "\n\n";
}
$c.= substr($cthis, 0, -10) . ";";
$c.="
return $tostring;
}
";
// ---------------------- SELECT ALL -------------
$sql = "$" . "sql = ";
$id = "$" . "id";
$result = "$" . "result = ";
$row = "$" . "row";
$result1 = "$" . "result";
$classname = "$" . strtolower($class);
$classinit = $classname. "->init($row);";
$objarray = "$" . "objarray";
$thisdb = "$classname->" . "database";
$thisdbquery = "$classname->" . "database->query($" . "sql" . ")";
$res = "$" . "result = $classname->" . "database->result;";
$criteria = "$" . "criteria";
$addquery = "$" . "sql.=";
$c.="
// **********************
// SELECT METHOD / LOAD ALL
// **********************
public static function selectAll($criteria = null)
{
$objarray = array(); // list of objects
$sql \"SELECT $table.* FROM $table\";
if ($criteria)
{
$addquery \" \" . $criteria;
}
$classname = new $class();
$result $thisdbquery;
$res
while($row = mysql_fetch_object($result1))
{
$classname = new $class();
$classinit
array_push($objarray,$classname);
}
return $objarray;
}
";
// Date Edited: March 26 2010
$sql = "$" . "sql = ";
$id = "$" . "id";
$result = "$" . "result = ";
$row = "$" . "rows";
$result1 = "$" . "result";
$classname = "$" . strtolower($class);
$classinit = "$classname->" . "init(mysql_fetch_object($result1));";
$thisdb = "$classname->" . "database";
$thisdbquery = "$classname->" . "database->query($" . "sql" . ")";
$res = "$" . "result = $classname->" . "database->result;";
$rowinit = "$row = $classname->" . "database->rows;";
$criteria = "$" . "criteria";
$addquery = "$" . "sql.=";
$c.="
// **********************
// SELECT METHOD / LOAD ONE
// **********************
public static function selectOne($id,$criteria = null)
{
$sql \"SELECT $table.* FROM $table WHERE $key = $id\";
if ($criteria)
{
$addquery \" \" . $criteria;
}
$classname = new $class();
$result $thisdbquery;
$res
$rowinit
if ($row > 0){
$classinit
return $classname;
}else{
return null;
}
";
$c.="
}
";
// ----------- Old Select Method -----------
/*
$sql = "$" . "sql = ";
$id = "$" . "id";
$thisdb = "$" . "this->" . "database";
$thisdbquery = "$" . "this->" . "database->query($" . "sql" . ")";
$result = "$" . "result = ";
$row = "$" . "row";
$result1 = "$" . "result";
$res = "$" . "result = $" . "this->database->result;";
$c.="
// **********************
// SELECT METHOD / LOAD
// **********************
public function select($id)
{
$sql \"SELECT * FROM $table WHERE $key = $id;\";
$result $thisdbquery;
$res
$row = mysql_fetch_object($result1);
";
$sql = "SHOW COLUMNS FROM $table;";
$database->query($sql);
$result = $database->result;
while ($row = mysql_fetch_row($result))
{
$col=$row[0];
$cthis = "$" . "this->" . $col . " = $" . "row->" . $col;
$c.="
$cthis;
";
}
$c.="
}
";*/
$idwhere = "$" . "this->$key";
$zeile1 = "$" . "sql" . " = \"DELETE FROM $table WHERE $key = $idwhere;\"";
$zeile2 = "$" . "result = $" . "this->database->query($" . "sql);";
$c.="
// **********************
// DELETE
// **********************
public function delete()
{
$zeile1;
$zeile2
";
$c.="
}
";
$zeile1 = "$" . "this->$key = \"\"";
$zeile2 = "INSERT INTO $table (";
$zeile5= ")";
$zeile3 = "";
$zeile4 = "";
$zeile6 = "VALUES (";
$sql = "SHOW COLUMNS FROM $table;";
$database->query($sql);
$result = $database->result;
while ($row = mysql_fetch_row($result))
{
$col=$row[0];
if($col!=$key && $row[1] != "timestamp")
{
//$datatype = mysql_field_type($result,$row);
$zeile3.= "$col" . ",";
$zeile4.= "'$" . "this->$col" . "',";
//$zeile3 = rtrim($zeile3);
//$zeile4 = rtrim($zeile4);
//$zeile3 = str_replace(",", " ", $zeile3);
//$zeile4 = str_replace(",", " ", $zeile4);
}
}
$zeile3 = substr($zeile3, 0, -1);
$zeile4 = substr($zeile4, 0, -1);
$sql = "$" . "sql =";
$zeile7 = "$" . "result = $" . "this->database->query($" . "sql);";
$zeile8 = "$" . "row";
$zeile9 = "$" . "result";
$zeile10 = "$" . "this->$key = " . "mysql_insert_id($" . "this->database->link);";
$chksuccess = "$" . "this->$key";
$c.="
// **********************
// INSERT
// **********************
public function insert()
{
$zeile1; // clear key for autoincrement
$sql \"$zeile2 $zeile3 $zeile5 $zeile6 $zeile4 $zeile5\";
$zeile7
$zeile10
}
";
// UPDATE ----------------------------------------
$zeile1 = "$" . "this->$key = \"\"";
$zeile2 = "UPDATE $table SET ";
$zeile5= ")";
$zeile3 = "";
$zeile4 = "";
$zeile6 = "VALUES (";
$upd = "";
$sql = "SHOW COLUMNS FROM $table;";
$database->query($sql);
$result = $database->result;
while ($row = mysql_fetch_row($result))
{
$col=$row[0];
if($col!=$key && $row[1] != "timestamp")
{
$zeile3.= "$col" . ",";
$zeile4.= "$" . "this->$col" . ",";
$upd.= "" . "$col = '$" . "this->$col',";
//$zeile3 = rtrim($zeile3);
//$zeile4 = rtrim($zeile4);
//$zeile3 = str_replace(",", " ", $zeile3);
//$zeile4 = str_replace(",", " ", $zeile4);
}
}
$zeile3 = substr($zeile3, 0, -1);
$zeile4 = substr($zeile4, 0, -1);
$upd = substr($upd, 0, -1);
$sql = "$" . "sql = \"";
$zeile7 = "$" . "result = $" . "this->database->query($" . "sql)";
$zeile8 = "$" . "row";
$zeile9 = "$" . "result";
$zeile10 = "$" . "this->$key = $" . "row->$key";
$id = "$" . "id";
$idwhere = "$" . "this->$key";
$where = "WHERE " . "$key = " . $idwhere;
$c.="
// **********************
// UPDATE
// **********************
public function update()
{
$sql $zeile2 $upd $where \";
$zeile7;";
$c.="
}
";
// ---------------------- SELECT ALL -------------
$sql = "$" . "sql = ";
$id = "$" . "id";
$result = "$" . "result = ";
$row = "$" . "row";
$result1 = "$" . "result";
$row = "$" . "row";
$rowinit = $row . '->count';
$classname = "$" . strtolower($class);
$classinit = $classname. "->init($row);";
$thisdb = "$classname->" . "database";
$thisdbquery = "$classname->" . "database->query($" . "sql" . ")";
$res = "$" . "result = $classname->" . "database->result;";
$objarray = "$" . "objarray";
$criteria = "$" . "criteria";
$addquery = "$" . "sql.=";
$c.="
// **********************
// DO COUNT
// **********************
public static function doCount($criteria = null)
{
$sql \"SELECT COUNT(*) as count FROM $table\";
if ($criteria)
{
$addquery \" \" . $criteria;
}
$classname = new $class();
$result $thisdbquery;
$res
$row = mysql_fetch_object($result1);
return $rowinit;
}";
$c.= "
} // class : end
?>";
fwrite($file, $c);
print "
<font face=\"Arial\" size=\"3\"><b>
PHP MYSQL Class Generator
</b>
<p>
<font face=\"Arial\" size=\"2\"><b>
Class '$class' successfully generated as file '$filename'!
<p>
<a href=\"javascript:history.back();\">
back
</a>
</b></font>
";
?>
<p>
<font size="1" face="Arial">
<a href="#" target="_blank">
this is a script by Bryan Jayson Tan
</a>
</font>
<?php
} // endif
?> |